关于 i++ 和 ++i
  • 板块学术版
  • 楼主VectorLi
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/12/7 13:46
  • 上次更新2023/11/3 22:44:53
查看原帖
关于 i++ 和 ++i
609972
VectorLi楼主2021/12/7 13:46

这是一段快速排序的代码,已经通过了题目。

void Quicksort(int *a, int l, int r)
{
    if (l >= r) { return; }

    int i = l, j = r, t = a[rand() % (r - l  + 1) + l];

    while (i <= j)
    {
        while (a[i] < t) { i++; }
        while (a[j] > t) { j--; }
        if (i <= j)
        {
            std::swap(a[i], a[j]);
            i++, j--;
        }
    }

    Quicksort(a, l, j);
    Quicksort(a, i, r);

    return;
}

但当我把这两行

while (a[i] < t) { i++; }
while (a[j] > t) { j--; }

改成这样后

while (a[i++] < t) { ; }
while (a[j--] > t) { ; }

答案就错误了。
请问什么原因导致的,百度无果。

2021/12/7 13:46
加载中...