思想
对于单个元素来说,它是有序的;对于n个元素,我们从第二个开始依次与前面的元素进行比较插入形成有序子序列,直到完成所有元素的插入,即排序完成。
代码
void insert_sort(int * a, int n)
{
int i;
int j;
int key;
for(i = 1; i < n; i++)
{
key = a[i];
j = i - 1;
while(j >= 0 && a[j] > key)
{
a[j + 1] = a[j];
j--;
}
a[j + 1] = key;
}
}
int main(void)
{
int a [] = {1,3,5,1,4,2,0};
int length = sizeof(a) / sizeof(int);
insert_sort(a,length);
int i;
printf("The sorted number is :\n");
for(i = 0; i < length; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
网友评论