排序算法之插入排序

来源:互联网 发布:java float与double 编辑:程序博客网 时间:2024/06/12 00:09

如何把一个数字插入到一段有序数字中,就需要用插入排序,如:3 5 7 4,如何把4移动到3 的后边,先找到位置,后移动。只要 数字比 4 大(a[i]>temp),就往后移动,(a[i]=a[i-1])。退出循环的条件是:i = 0或者 a[i]<temp。因此。把第 n 个数字插入有序数列中的算法如下:

void insert(int a[],int n){    int temp = a[n];    while(n>0 && temp < a[n-1])    {        a[n] = a[n-1];        n--;    }    a[n] = temp;}

选择排序算法如下:

#include<stdio.h>void insert(int a[],int n){    int temp = a[n];    while(n>0 && temp < a[n-1])    {        a[n] = a[n-1];        n--;    }    a[n] = temp;}void insertSort(int a[],int n){    int i;    for(i=1;i<n;i++)        insert(a,i);}int main(){    int i;    int a[10]={23,19,45,22,13,10,12,4,56,1};    insertSort(a,10);    for(i =0;i<11;i++)        printf("%d ",a[i]);    return 0;}


原创粉丝点击