sil*_*ace 4 c c++ sorting algorithm
我刚刚开始学习排序算法,并在网上找到了一个.起初我认为这是一个shell排序,但它缺少"k"的明显间隔和数组的减半所以我不确定它是否是.我的第二个猜测是插入排序,但我只是在这里仔细检查:
for(n = 1; n < num; n++)
{
key = A[n];
k = n;
while((k > 0) && (A[k-1] > key))
{
A[k] = A[k-1];
k = k-1;
}
A[k] = key;
}
Run Code Online (Sandbox Code Playgroud)
此外,如果你能解释为什么这也有帮助
Shell Sort包含许多在原始数组的子数组上执行的插入排序.
您提供的代码是插入排序.
为了得到shell排序,它将大致让for你的代码周围的其他s改变h(shell排序中的差距)和子数组的起始索引和内部,而不是移动k到k-1,你移动k到k+h(或k-h取决于哪个方向你做插入排序)
| 归档时间: |
|
| 查看次数: |
807 次 |
| 最近记录: |