Chinaunix首页 | 论坛 | 博客
  • 博客访问: 264391
  • 博文数量: 45
  • 博客积分: 930
  • 博客等级: 准尉
  • 技术积分: 553
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-22 17:53
文章分类

全部博文(45)

文章存档

2013年(5)

2012年(40)

分类: C/C++

2012-08-06 11:16:10


点击(此处)折叠或打开

  1. #include <stdio.h>

  2. void shellSort(int arr[],int N)
  3. {
  4.     int i, j, Increment;
  5.     int Tmp;

  6.     for ( Increment = N / 2; Increment > 0; Increment /= 2 )//增量
  7.         for ( i = Increment; i < N; i++ )//起始位置
  8.         {
  9.             Tmp = arr[ i ];
  10.             for ( j = i; j >= Increment; j -= Increment )//一次插入顺序
  11.                 if ( Tmp < arr[ j - Increment ])
  12.                         arr[ j ] = arr[ j - Increment ];
  13.                 else
  14.                     break;
  15.             arr[j] = Tmp;
  16.         }
  17. }

  18. int main()
  19. {
  20.     int arr[9] = {3,43,23,13,45,17,35,48,33};
  21.     shellSort(arr,9);
  22.     int i = 0;
  23.     for (; i < 9; i++)
  24.         printf("%d\t",arr[i]);
  25.     printf("\n");
  26.     return 0;
  27. }

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