堆排序
来源:互联网 发布:最离奇的杀人案件知乎 编辑:程序博客网 时间:2024/06/09 14:19
#include <iostream>#include <algorithm>using namespace std;//最大堆void HeapAdjust(int *a, int i, int size)//调整堆{int lchild=2*i;//i的左孩子节点int rchild=2*i+1;//i的右孩子节点int max=i;if(i<=size/2){if(lchild<=size && a[lchild]>a[max])max=lchild;if(rchild<=size && a[rchild]>a[max])max=rchild;if(max!=i){swap(a[i], a[max]);HeapAdjust(a, max, size);}}}void BuildHeap(int *a, int size)//建立堆{for(int i=size/2; i>=1; i--)HeapAdjust(a, i, size);}void HeapSort(int *a, int size)//堆排序{BuildHeap(a, size);for(int i=size; i>=1; i--){swap(a[1], a[i]);HeapAdjust(a, 1, i-1);}}int main(){int a[100];int size;while(scanf("%d",&size)==1 && size>0){int i;for(i=1; i<=size; i++)cin>>a[i];HeapSort(a, size);for(i=1; i<=size; i++)cout<<a[i]<<" ";cout<<endl;}return 0;}
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- WPF中的MVVM模式
- html5 websocket聊天室 客户端
- CSRF原理剖析
- 职场情商训练 - 下属的工作技巧
- android-gallery游览图片点击图片放大
- 堆排序
- lighttpd+webpy安装实践
- C语言内存监控
- 得到两个日期相差的天数
- 【排序算法】快速排序超级总结
- 获得日期的月份转换成字符显示
- Windows 7 IIS (HTTP Error 500.21 - Internal Server Error)解决
- 游戏行业创业投资 ---成都游戏行业交流会笔记
- [转载] 使用X-UA-Compatible来设置IE8/IE9兼容模式