Chinaunix首页 | 论坛 | 博客
  • 博客访问: 480537
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1190
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-08 20:16
文章分类

全部博文(144)

文章存档

2017年(1)

2015年(5)

2014年(108)

2013年(30)

我的朋友

分类: C/C++

2014-08-22 20:02:23


点击(此处)折叠或打开

  1. #include <stdio.h>

  2. int ShellSort(int *a,int len)
  3. {
  4.     int i;
  5.     int j;
  6.     int tmp;
  7.     int increment=len;
  8.     do
  9.     {
  10.         increment=increment/3+1;

  11.         for (i=0;i<len-increment;i++)
  12.         {
  13.             if(a[i]>a[i+increment])
  14.             {
  15.                 tmp=a[i+increment];
  16.                 j=i;
  17.                 while((a[j]>tmp)&&(j>=0))
  18.                 {

  19.                     a[j+increment]=a[j];
  20.                     j-=increment;

  21.                 }
  22.                 a[j+increment]=tmp;

  23.             }
  24.         }

  25.     } while (increment>1);
  26.     return 0;
  27. }
  28. int InertSort(int *a,int len)
  29. {
  30.     int i;
  31.     int j;
  32.     int tmp;

  33.     
  34.         for (i=0;i<len-1;i++)
  35.         {
  36.             if(a[i]>a[i+1])
  37.             {
  38.                 tmp=a[i+1];
  39.                 j=i;
  40.                 while((a[j]>tmp)&&(j>=0))
  41.                 {

  42.                     a[j+1]=a[j];
  43.                     j-=1;

  44.                 }
  45.                 a[j+1]=tmp;

  46.             }
  47.         }

  48.     return 0;
  49. }
  50. int main()
  51. {
  52.     int a[7]={1,4,7,9,3,2,6};
  53.     int i;
  54.     ShellSort(a,7);
  55.     //InertSortSort(a,7);
  56.     for (i=0;i<7;i++)
  57.     {
  58.         printf("%d\n",a[i]);
  59.     }
  60. }


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