Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2539594
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: C/C++

2011-03-25 08:37:24

   插入排序的原理是,用一个指针指向一个元素,和它左边的元素进行比较,如果比其左边的元素小,则将大的元素往左移动,然后将该元素插入到合适的位置。代码如下:
  1. #include <stdio.h>

  2. void InsertSort(int array[], int length)
  3. {
  4.   int i, j, key;
  5.   for(i = 1; i < length; i++)
  6.   {
  7.     key = array[i];
  8.     for(j = i - 1; j >= 0 && array[j] > key; j--)
  9.     {
  10.        array[j + 1] = array[j];
  11.     }
  12.     array[j + 1] = key;
  13.   }
  14. }

  15. void Output(int array[], int length)
  16. {
  17.   int i;
  18.   for(i = 0; i < length; i++)
  19.   {
  20.     printf("%d ",array[i]);
  21.   }
  22.   printf("\n");
  23. }

  24. int main(int argc, char *argv[])
  25. {
  26.   int array[] = {2,3,6,1,8,5,7,9};
  27.   printf("the source array:\n");
  28.   Output(array, 8);
  29.   InsertSort(array, 8);
  30.   printf("the sort result:\n");
  31.   Output(array, 8);
  32.   return 0;
  33. }
执行结果:
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

阅读(2207) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~