插入排序的原理是,用一个指针指向一个元素,和它左边的元素进行比较,如果比其左边的元素小,则将大的元素往左移动,然后将该元素插入到合适的位置。代码如下:
- #include <stdio.h>
-
-
void InsertSort(int array[], int length)
-
{
-
int i, j, key;
-
for(i = 1; i < length; i++)
-
{
-
key = array[i];
-
for(j = i - 1; j >= 0 && array[j] > key; j--)
-
{
-
array[j + 1] = array[j];
-
}
-
array[j + 1] = key;
-
}
-
}
-
-
void Output(int array[], int length)
-
{
-
int i;
-
for(i = 0; i < length; i++)
-
{
-
printf("%d ",array[i]);
-
}
-
printf("\n");
-
}
-
-
int main(int argc, char *argv[])
-
{
-
int array[] = {2,3,6,1,8,5,7,9};
-
printf("the source array:\n");
-
Output(array, 8);
-
InsertSort(array, 8);
-
printf("the sort result:\n");
-
Output(array, 8);
-
return 0;
-
}
执行结果:
peng@ubuntu:~/src/test/c/suanfa/other$ ./insertsort.o
the source array:
2 3 6 1 8 5 7 9
the sort result:
1 2 3 5 6 7 8 9
阅读(444) | 评论(0) | 转发(0) |