以下是使用C++编写的快速排序函数:

void quickSort(int arr[], int left, int right) {
    int i = left, j = right;
    int pivot = arr[(left + right) / 2]; // 选取中间元素作为枢轴

    // 分区过程
    while (i <= j) {
        while (arr[i] < pivot)
            i++;
        while (arr[j] > pivot)
            j--;
        if (i <= j) {
            swap(arr[i], arr[j]);
            i++;
            j--;
        }
    }

    // 递归调用
    if (left < j)
        quickSort(arr, left, j);
    if (i < right)
        quickSort(arr, i, right);
}

该函数的参数包括待排序的数组、数组的左右边界。该函数首先选取中间元素作为枢轴,然后对数组进行分区,将小于枢轴的元素放在左边,大于枢轴的元素放在右边。接着,该函数使用递归调用对左右两个子数组进行排序,直到整个数组有序

用C++写一个函数实现快速排序

原文地址: https://www.cveoy.top/t/topic/hvn2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录