希尔排序
希尔排序是升级版插入排序,主要思路是,先把整个数组分为n份,对n份内的数组进行排序,然后再按照n/2份分组进行排序,直接到0为止。
public static int[] SortXE(int[] a)
{
int n = a.Length;//长度
int h = 1;
while (h < n / 3) h = 3 * h + 1;//分割为h份
while (h >= 1)
{
for (int i = h; i < n; i++)
{
for (int j = i; j >= h && a[j] < a[j - h]; j -= h)
execArray(ref a, j, j - h);
}
h = h / 3;
}
return a;
}