快速排序算法的原理?
时间: 2023-12-06 16:36:36 浏览: 143
快速排序是一种常用的排序算法,其基本思想是通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后再分别对这两部分记录继续进行排序,以达到整个序列有序的目的。
具体实现过程如下:
1. 选择一个基准元素,通常选择第一个元素或者最后一个元素。
2. 通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小。
3. 对于分隔后的两部分,分别重复以上步骤,直到各子序列中只有一个元素为止。
以下是C++实现双路快速排序算法的代码示例:
```cpp
void quickSort(int arr[], int left, int right) {
if (left >= right) {
return;
}
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--;
}
}
quickSort(arr, left, j);
quickSort(arr, i, right);
}
```
阅读全文