排序算法之堆排序
来源:互联网 发布:redmine 数据库配置 编辑:程序博客网 时间:2024/05/19 19:15
堆排序的算法如下:
#include <iostream>using namespace std;void AdjustHeap(int a[], int begin, int end, int pos){int lchild = 2 * pos - begin + 1;int rchild = 2 * pos - begin + 2;int TracePos = -1;if(lchild > end)return;if(rchild <= end)a[lchild] > a[rchild]? TracePos = lchild : TracePos = rchild;else if(lchild <= end)TracePos = lchild;if(a[pos] < a[TracePos]) {swap(a[pos], a[TracePos]);AdjustHeap(a, begin, end, TracePos);}}void HeapSort(int a[], int begin, int end){int len = end - begin + 1;for(int i = begin + (len / 2 - 1); i >= begin; --i)AdjustHeap(a, begin, end, i);for(int i = end; i >= begin; --i){AdjustHeap(a, begin, i, begin);swap(a[begin], a[i]);}}int main(){int a[] = {2334, 12112121, 1212, 45, 45, 12, 34343};//int a[] = {};int len = sizeof(a)/sizeof(int);random_shuffle(a, a + len);HeapSort(a, 0, len - 1);for(int i = 0; i < len; ++i)cout<< a[i] << " ";}
0 0
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之 堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- 排序算法之堆排序
- mac 设置环境变量
- 使用Jackson时转换JSON时,日期格式设置
- Curator源码解析(四)ZooKeeper存在的连接问题
- [leetcode 57] Insert Interval (待修改)
- 数据融合算法(data fusion)
- 排序算法之堆排序
- friso分词器在windows7下使用mingw编译和测试
- 推荐国内外几大知名域名交易平台
- struts2的入门
- 【java基础】第六天总结
- java 继承问题 public class Z extens X{ Y y=new Y(面试问题)
- Shell语法
- spring mvc4返回的json日期为Long的解决方案
- a