中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

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
台北县| 四川省| 安乡县| 花莲市| 多伦县| 滦平县| 平罗县| 噶尔县| 海城市| 德庆县| 高邑县| 泰宁县| 自治县| 灌南县| 加查县| 视频| 苍南县| 海口市| 铜川市| 北票市| 舒兰市| 鹤岗市| 井冈山市| 新安县| 平江县| 常州市| 中西区| 英吉沙县| 古浪县| 涪陵区| 普兰店市| 平乡县| 渝中区| 土默特左旗| 瑞金市| 高碑店市| 从江县| 伊金霍洛旗| 德钦县| 四平市| 武鸣县|