快速排序算法不起作用!无法弄清楚为什么。

时间:2017-02-08 16:53:04

标签: c++ sorting vector quicksort

我使用维基百科算法,它根本不工作,我看不出我做错了什么,任何帮助将不胜感激!我很困惑,因为我认为lo值应该是0,但后来它说要做lo -1?

  int partition(vector<int>v, int lo, int hi)
   {
    int pivot = v[lo];  //wikipedia says to use the low value
    int i = lo - 1;
    int j = hi + 1;
    for (;;)
    {
     do
        i = i + 1;
    while (v[i] < pivot);

        do
            j = j - 1;
        while (v[j] > pivot);

        if (i <= j)
            return j;

            swap(i, j);

 }

}

void quickSort(vector<int>v, int lo, int hi)
{
    if (lo < hi)
    {
    int p = partition(v, lo, hi);
    quickSort(v, lo, p);
    quickSort(v, p + 1, hi);
    }
}

0 个答案:

没有答案