直接插入排序:每次將一個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子文件中的適當位置,直到全部記錄插入完成爲止。當數組已經排好序,直接插入排序的時間複雜度爲O(n)
# include <stdio.h>
void insert_sort(int a[],int len);
int main(void)
{
int a[]={165,416,51,654,351,6541,3241,654,3,546,54,365435};
insert_sort(a,sizeof(a)/sizeof(a[0]));
for (int i=0;i<sizeof(a)/sizeof(a[0]);++i)
{
printf ("%d ",a[i]);
}
return 0;
}
void insert_sort(int a[],int len)
{
int i,j;
for (i=1;i<len;++i) //遍歷數組
{
for (j=i;j>0 && a[j]<a[j-1];--j) //將前 i 個數字升序排序
{
int temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}