Chinaunix首页 | 论坛 | 博客
  • 博客访问: 370739
  • 博文数量: 100
  • 博客积分: 2500
  • 博客等级: 大尉
  • 技术积分: 1209
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-15 21:24
文章分类

全部博文(100)

文章存档

2011年(100)

分类: C/C++

2011-04-17 18:28:17


  1. #include <stdio.h>

  2. void insertSort(int *a, int len);

  3. int
  4. main(void)
  5. {
  6.         int a[10] = {1,3,5,7,9,0,2,4,6,8};
  7.         int len = sizeof(a)/sizeof(a[0]);

  8.         insertSort(a, len);

  9.         int i;
  10.         for (i = 0; i < len; i++) {
  11.                 printf("%d,", a[i]);
  12.         }
  13.         printf("\n");

  14.         return (0);
  15. }

  16. void
  17. insertSort(int *a, int len)
  18. {
  19.         int i, j;
  20.         int tmp;
  21.         if (len <= 1) {
  22.                 return ;
  23.         }

  24.         for (j = 1; j < len; j++) {
  25.                 tmp = *(a+j);
  26.                 i = j - 1;
  27.                 while (*(a+i) > tmp && i >= 0) {
  28.                         *(a+i+1) = *(a+i);
  29.                         i--;
  30.                 }
  31.                 *(a+i+1) = tmp;
  32.         }
  33. }

T(n) = O(n2);
S(n) = O(1);
阅读(1218) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~