希尔排序
核心:定义增量序列,不断递减增量至1,做插入排序
public void ShellSort(int[] arr)
{
//增量h,等于1时最后一次排序
int h = arr.Length / 2;
while(h >= 1)
{
//这里开始是简单插入排序算法,把简单插入排序算法的1换成h
for(int i = h; i < arr.Length; i++)
{
for(int j = i; j >= h; j -= h)
{
if(arr[j] < arr[j - h])
{
SwapItem(arr, j, j - h);
}
else
{
break;
}
}
}
h /= 2;
}
}
大总结
希望我这篇文章能够对你有帮助