91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

c++快速排序的方法是什么

c++
小億
87
2024-03-04 15:17:26
欄目: 編程語言

快速排序是一種常用的排序算法,其基本思想是通過遞歸地將數組分成兩個子數組,然后對這兩個子數組分別進行排序。具體步驟如下:

  1. 選擇一個基準值,可以是數組中的任意一個元素。
  2. 將數組分成兩部分,使得左邊的元素都小于基準值,右邊的元素都大于基準值。
  3. 遞歸地對左邊和右邊的子數組進行排序。
  4. 合并左右子數組,得到最終的有序數組。

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);

上述代碼中,我們首先選擇數組的第一個元素作為基準值,然后根據基準值將數組分成兩部分。接著遞歸地對左右子數組進行排序,最終得到一個有序的數組。

0
三原县| 响水县| 潼关县| 青海省| 将乐县| 酉阳| 山东省| 鸡泽县| 常德市| 双辽市| 马山县| 扬中市| 新干县| 东兰县| 乌兰县| 稷山县| 云霄县| 宁都县| 南宁市| 荥经县| 来宾市| 义马市| 靖安县| 通许县| 建始县| 昌图县| 平顺县| 荔波县| 遂宁市| 博野县| 江北区| 广德县| 延长县| 公主岭市| 天峻县| 团风县| 腾冲县| 克什克腾旗| 江油市| 张掖市| 清水河县|