Chinaunix首页 | 论坛 | 博客
  • 博客访问: 106531
  • 博文数量: 41
  • 博客积分: 984
  • 博客等级: 军士长
  • 技术积分: 430
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-12 09:57
文章分类

全部博文(41)

文章存档

2010年(41)

分类:

2010-06-25 00:49:42

  1. #include  
  2. using namespace std;  
  3.    
  4. void shell(int *work,int n)  
  5. {  
  6. int i,j,x,d;  
  7. d= n / 2;  
  8. while (d>=1)  
  9. {  
  10.   for (i=d+1;i<=n;i++)  
  11.   {  
  12.     x=work[i];  
  13.     j=i-d;  
  14.     while ((j>0) && (x
  15.     {  
  16.     work[j+d]=work[j];  
  17.     j-=d;  
  18.     }  
  19.     work[j+d]=x;  
  20.   }  
  21.   d /= 2;  
  22. }  
  23. }  
  24. int main(){  
  25.     int a[100],b,c,n,i;  
  26.     cout<<"请输入需排序的数字个数:";  
  27.     cin>>n;  
  28.     cout<<"请输入需排序的数字";  
  29.     for (i=1;i<=n;i++)  
  30.     {  
  31.         cin>>a[i];  
  32.     }  
  33.     shell(a,n);    
  34.     cout<<"从小到大排序结果为:";  
  35.     for (i=1;i<=n;i++)  
  36.     {  
  37.         cout<' ';  
  38.     }  
  39.     system("pause");  
  40. }  
阅读(701) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~