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

溫馨提示×

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
大厂| 新昌县| 深州市| 尉犁县| 克拉玛依市| 东安县| 广平县| 鄂州市| 福州市| 田林县| 洛扎县| 涞水县| 池州市| 凤山县| 马关县| 武安市| 望奎县| 苍山县| 黄陵县| 溧水县| 丽水市| 获嘉县| 鹿邑县| 茶陵县| 平和县| 云和县| 介休市| 灵寿县| 离岛区| 连州市| 唐河县| 本溪市| 长子县| 攀枝花市| 曲靖市| 沈丘县| 旌德县| 甘肃省| 宽城| 杭州市| 盐边县|