您的位置:首页 > 其它

希尔排序

2016-03-07 07:54 267 查看
思想:把元素按步长分组,对每组元素按直接插入排序算法排序。

时间复杂度:O(nlgn),最差O(n^1.3)

稳定性:不稳定

void ShellSort (int* A, int length)
{
if (A == NULL || length < 1)
{
return;
}

int gap = length / 2;
while(gap >= 1)
{
for (int i = gap; i < length; ++i)
{
int j = i - gap;
int key = A[i];
while(j >= 0 && A[j] >= key)
{
A[j+gap] = A[j];
j -= gap;
}
A[j+gap] = key;
}
gap /= 2;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: