ShellSort 关于控制条件

来源:2-7 更多关于O(n^2)排序算法的思考

qq_飞羽醉月_0

2017-10-30

for (int i = h; i < n; i++)
{
    T e = arr[i];
    int j;
    for (j = i; j >= h && e < arr[j - h]; j -= h)
    {
        arr[j] = arr[j - h];
    }
    arr[j] = e;
}

为何 不是  j >= i;  i  不该是有序数组得 第一个元素的索引吗?

写回答

1回答

liuyubobobo

2017-10-31

这部分代码将h个数组进行插入排序。其中0~h-1是这h个数组的第一个元素。i是当前处理的元素。j从i开始,只要j>=h,就说明j还没有碰到第一个元素。

1
1
qq_飞羽醉月_0
非常感谢!
2017-11-13
共1条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11211 学习 · 1617 问题

查看课程