希尔排序
#include <iostream>
using namespace std;
void ShellSort(int n[], int l)
{
int g= l/2;//增量,步长
int i, j;
for ( ; g> 0; g/= 2)
{
for (i= g; i< l; i++)
{
int t= n[i];//要插入的元素
for (j= i; j>= g&&n[j- g]> t; j-= g)
{
n[j]= n[j- g];
}
n[j]= t;
}
}
}
int main()
{
int t;
cin>>t;
int n[100000];
int i=0;
for (;i< t; i++)
{
cin>>n[i];
}
ShellSort(n,t);
cout<<"排序后:"<<endl;
for (i= 0; i< t;i++)
{
cout<<n[i];
if(i< t- 1 ) cout<<' ';
}
cout<<endl;
system("pause");
return 0;
}

浙公网安备 33010602011771号