//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;
}
(12)希尔排序
最新推荐文章于 2024-03-20 13:15:46 发布