C#
希尔排序是进阶点的排序方法,不是很直观,我把它用实例直观列了出来,方便理解一个小黑框表示一次循环,第一次的比较简单,就没框。
public static class ShellSort
{
public static void Sort(IComparable[] Arr)
{
int j ;
for( int gap = Arr.Length / 2;gap>0;gap /= 2)
{
for (int i = gap; i< Arr.Length; i++)
{
IComparable st = Arr[i];
for(j = i; j>= gap && st.CompareTo(Arr[j - gap]) > 0; j-=gap)
{
Arr[j] = Arr[j - gap];
}
Arr[j] = st;
}
}
}
}