C++ STL中的堆排序实现

   2024-10-02 5490
核心提示:以下是使用C++ STL中的堆排序算法实现堆排序的示例代码:#include iostream#include vector#include algorithmvoid heapSort(std

以下是使用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函数依次将最大堆的根节点取出并放到数组末尾,最终完成堆排序。最后输出排序前和排序后的数组。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号