C语言中Quicksort算法的比较计数器

时间:2018-12-12 00:39:22

标签: c algorithm counter quicksort

我试图弄清楚如何正确计算快速排序中的比较次数。我不确定我是否正确放置了柜台。我将不胜感激。 这是我的带计数器的快速排序功能:

void quicksort(int *A, int l, int r)
{

    int pivot = A[(l + r) / 2];
    int i, j;
    i = l;
    j = r;

    do {
        ++counter;
        while (A[i] < pivot)
        {
            ++counter;
            i++;
        }

        while (A[j] > pivot)
        {
            ++counter;
            j--;
        }

        if (++counter, i > j)
            break;

        swap(&A[i], &A[j]);
        i++;
        j--;

    } while (i <= j);

    if (j > l) quicksort(A, l, j);
    if (i < r) quicksort(A, i, r);
}

0 个答案:

没有答案