直接选择排序(需下载观看)
希尔排序
希尔排序Q (Shellsort) ,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。
希尔排序是基于插入排序Q的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率
但插入排序-般来说是低效的,因为插入排序每次只能将数据移动一位
基本思想:
希尔排序属于插入类排序是将整个有序序列分割成若干小的子序列分别进行插入排序。
排序过程:先取-个正整数d1<n,把所有序号相隔d1的数组元素Q放-组,组内进行直接插入排序;然后取d2<d1,复上述分组和排序操作;直至di=1, 即所有记录放进-个组中排序为止。

void shell_ sort(int data[], int n)
{
int temp;
int j;
for(int D=n/2;D>0;D=D/2)//递增序列
{ for(int i=D;i<n;i++)//插入排序
{ temp=data[i];
for( j=i;j>=D&&data[j-D]>temp;j=j-D)
data[j]=data[j-D];
}
data[j]=temp;
}
}

