Add 希尔排序

master
pgts2hu9l 4 years ago
parent 0536318d52
commit 079416a469

@ -0,0 +1,32 @@
//时间复杂度平均O(N^1.3)
//空间复杂度O(1)
void ShellSort(int* arr, int n)
{
int gap = n;
while (gap>1)
{
//每次对gap折半操作
gap = gap / 2;
//单趟排序
for (int i = 0; i < n - gap; ++i)
{
int end = i;
int tem = arr[end + gap];
while (end >= 0)
{
if (tem < arr[end])
{
arr[end + gap] = arr[end];
end -= gap;
}
else
{
break;
}
}
arr[end + gap] = tem;
}
}
}
Loading…
Cancel
Save