#include<iostream>
using namespace std;
void shellsort(int *a, int length)
{
int i,j,step,temp;
/*增量依次减半*/
step=length/2;
while(step>0)
{
/*从步长位置开始即可*/
for(i=step; i<length; i++)
{
temp=a[i];
j=i-step;
/*往前移动,把前一个数移动到后面,并且找到一个比它小的数*/
while(j>=0 && temp < a[j])
{
a[j+step]=a[j];
j=j-step;
}
a[j+step]=temp;
}
step=step/2;
}
}
int main()
{
int a[] = {8,10,3,5,7,4,6,1,9,2};
int length= sizeof(a) / sizeof(a[0]);
shellsort(a, length);
for(int k = 0; k < length; k++)
cout<<a[k]<<" ";
return 0;
}
【day-5】希尔排序
最新推荐文章于 2019-09-10 16:04:00 发布