插入排序:
void insert_sort(int array[],int len)
{
int i,j,key;
for(i=1;i<len;i++)//把第一个数,当作一个有序数组
{
key=array[i];
for(j=i-1;j>=0 && key<array[j];j--)//序号比0大,且key从后往前和有序数组比
array[j+1]=array[j]; //比array[j]小的时候,array[j]就覆盖后一个值,即
//array[j+1]
array[j+1]=key; //若不比array[j]小,就放在其后,即key覆盖
//array[j+1]
}
}
测试代码:
#include <stdio.h>
void insert_sort(int array[],int len);
int main(int argc, char *argv[])
{
int i;
int a[10]={2,3,5,6,73,56,90,23,64,76};
insert_sort(a,10);
for(i=0;i<10;i++)
{
printf("%d\n",a[i]);
}
printf("Hello World!\n");
return 0;
}