用C++写一个函数实现快速排序
以下是使用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);
}
该函数的参数包括待排序的数组、数组的左右边界。该函数首先选取中间元素作为枢轴,然后对数组进行分区,将小于枢轴的元素放在左边,大于枢轴的元素放在右边。接着,该函数使用递归调用对左右两个子数组进行排序,直到整个数组有序
原文地址: https://www.cveoy.top/t/topic/hvn2 著作权归作者所有。请勿转载和采集!