快速排序是一種常用的排序算法,其基本思想是通過遞歸地將數組分成兩個子數組,然后對這兩個子數組分別進行排序。具體步驟如下:
C++實現快速排序的代碼示例如下:
void quickSort(vector<int>& arr, int low, int high) {
if (low < high) {
int i = low, j = high, pivot = arr[low];
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
if (i < j) {
arr[i++] = arr[j];
}
while (i < j && arr[i] < pivot) {
i++;
}
if (i < j) {
arr[j--] = arr[i];
}
}
arr[i] = pivot;
quickSort(arr, low, i - 1);
quickSort(arr, i + 1, high);
}
}
// 使用方法
vector<int> arr = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};
quickSort(arr, 0, arr.size() - 1);
上述代碼中,我們首先選擇數組的第一個元素作為基準值,然后根據基準值將數組分成兩部分。接著遞歸地對左右子數組進行排序,最終得到一個有序的數組。