快速排序c++代码
以下是快速排序的C++代码:
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
/* partition */
while (i <= j) {
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
该代码使用了经典的快速排序算法,首先选择一个中心点(pivot),然后将数组分成两部分,左边的元素都小于中心点,右边的元素都大于中心点。然后对左右两部分分别进行递归排序,最后合并起来即可得到有序的数组。
原文地址: https://www.cveoy.top/t/topic/WJh 著作权归作者所有。请勿转载和采集!