物理结构:数组
希尔排序分析:最优时间复杂度:O(n) 顺序的情况下
最坏时间复杂度:O(nlog^2n)
平均时间复杂度:根据增量不同而不同
最坏空间复杂度:O(n)
稳定性:不稳定
希尔排序函数:
int ShellSort(int a[],int length);
//希尔排序,缩小增量的插入排序
int ShellSort(int a[],int length)
{
int incre=0,i,j,tmp;
while(incre<length)//构造增量规则
{
incre=incre*2+1;
}
//插入排序
while(incre>0)
{
for(i=incre;i<length;i++)
{
j=i-incre;
tmp=a[i];
while(j>=0&&a[j]>tmp)
{
a[j+incre]=a[j];
j=j-incre;
}
a[j+incre]=tmp;
}
incre=(incre-1)/2;
}
}