(12)希尔排序

来源:互联网 发布:进销存软件推荐 编辑:程序博客网 时间:2024/05/22 02:24

//http://blog.csdn.net/sunboyiris#include "stdafx.h"#include "iostream"#include "time.h"using namespace std;#define MAX 1000#define SWAP(x,y) {int t;t=x;x=y;y=t;}void shellsort(int []);//希尔排序void shellsort(int num[]){int i,j,k,t,gap;gap=MAX/2; //间隔区间  排序while(gap>0){for(k=0;k<gap;k++){for(i=k+gap;i<MAX;i+=gap) {for(j=i-gap;j>=k;j-=gap)   {if(num[j]>num[j+gap]){SWAP(num[j],num[j+gap]);}else     {break;}        }  }}gap/=2;}}int _tmain(int argc, _TCHAR* argv[]){int num[MAX]={0};int i;srand(time(NULL));for(i=0;i<MAX;i++){num[i]=rand()%100;}    shellsort(num);for(i=0;i<MAX;i++){cout<<num[i]<<" ";}return 0;}


原创粉丝点击