博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堆排序(C++实现)
阅读量:4965 次
发布时间:2019-06-12

本文共 1128 字,大约阅读时间需要 3 分钟。

#include
#include
using namespace std; void swap(vector
&arr, int a, int b){ int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp;} void ajust_heap(vector
&arr, int hole, int len){ int Rchild; Rchild = 2*hole+2; while(Rchild
arr[hole]) {swap(arr, Rchild, hole); hole = Rchild; Rchild = 2*hole+2;} else break; } if(Rchild==len&&arr[Rchild-1]>arr[hole]) swap(arr, hole, Rchild-1); } void build_heap(vector
&arr){ int size = arr.size(); for(int hole=size/2-1; hole>=0; hole--) { ajust_heap(arr, hole, size); }} void heapSort(vector
& arr){ int len = arr.size(); for(int i=len-1; i>=0; i--) { cout<
<<" "; arr[0] = arr[i]; ajust_heap(arr, 0, i); }}int main(){ int a[] = {2,1,4,6,7,6,5,3,3,4,8}; vector
arr(a, a+sizeof(a)/sizeof(int)); build_heap(arr); heapSort(arr); return 0;}

  

转载于:https://www.cnblogs.com/break-python/p/5340335.html

你可能感兴趣的文章
Android开源工具库
查看>>
Counterfeit Dollar
查看>>
【PKI】PKI-中的几种证书的区别
查看>>
Code(组合数学)
查看>>
Java学习笔记——反射
查看>>
Linux命令速查手册
查看>>
2017总结 展望2018
查看>>
委托和事件(续)
查看>>
SQl事物
查看>>
iOS高级-QuartzCore框架-2D绘图-实例:小黄人
查看>>
简单易学的机器学习算法——马尔可夫链蒙特卡罗方法MCMC
查看>>
bzoj 1231: [Usaco2008 Nov]mixup2 混乱的奶牛【状压dp】
查看>>
选择器的使用总结
查看>>
DAU新解
查看>>
WPF 构建无外观(Lookless)控件
查看>>
WPF去除边框的方法
查看>>
Advanced Installer 中测试数据库连接提示“未发现数据源名称并且未指定默认驱动程序”的解决办法...
查看>>
VSTO学习笔记(七)基于WPF的Excel分析、转换小程序
查看>>
thinkphp3.2入口文件
查看>>
快速构建Windows 8风格应用2-创建调试应用
查看>>