亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

C++ STL中的堆排序實現

c++
小樊
81
2024-08-06 20:56:16
欄目: 編程語言

以下是使用C++ STL中的堆排序算法實現堆排序的示例代碼:

#include <iostream>
#include <vector>
#include <algorithm>

void heapSort(std::vector<int>& arr) {
    std::make_heap(arr.begin(), arr.end()); // 創建最大堆

    // 依次將最大堆的根節點取出并放到數組末尾
    for (int i = arr.size() - 1; i > 0; i--) {
        std::pop_heap(arr.begin(), arr.begin() + i + 1);
    }
}

int main() {
    std::vector<int> arr = {12, 11, 13, 5, 6, 7};
    
    std::cout << "Array before sorting:\n";
    for (int num : arr) {
        std::cout << num << " ";
    }

    heapSort(arr);

    std::cout << "\nArray after sorting:\n";
    for (int num : arr) {
        std::cout << num << " ";
    }

    return 0;
}

在上面的示例中,我們使用std::make_heap函數創建一個最大堆,然后使用std::pop_heap函數依次將最大堆的根節點取出并放到數組末尾,最終完成堆排序。最后輸出排序前和排序后的數組。

0
延安市| 巴里| 洪江市| 石阡县| 杭州市| 关岭| 道真| 资阳市| 大城县| 甘泉县| 大洼县| 麟游县| 赞皇县| 禹城市| 新津县| 赤水市| 府谷县| 伽师县| 延边| 富川| 轮台县| 凉山| 乳源| 益阳市| 武陟县| 齐齐哈尔市| 呼图壁县| 墨脱县| 汶上县| 常山县| 衢州市| 唐山市| 玉林市| 阜城县| 云霄县| 兴隆县| 枝江市| 江都市| 泌阳县| 汽车| 平乡县|