关于堆排序的了解和实现
来源:互联网 发布:深圳java外包公司 编辑:程序博客网 时间:2024/05/20 18:16
//编写文件:HEAPIFY.H//编写日期:2015年6月30日//版本号:1.0#ifndef HEAPIFY#define HEAPIFY 1int parent(int i);int left(int i);int right(int i);//实现最大堆void max_heapify(int A[], int i);void build_max_heap(int A[]);void max_heapsort(int A[]);//实现最小堆void min_heapify(int A[], int i);void build_min_heap(int A[]);void min_heapsort(int A[]);void move(int& a,int& b);#endif源码实现最大堆以及最小堆及排序
//编写文件:HEAPIFY.CPP//编写日期:2015年6月30日//版本号:1.0#include"HEAPIFY.h"int parent(int i){return i/2;}int left(int i){return 2*i;}int right(int i){return 2*i+1;}void move(int& a,int& b){int temp;temp=a;a=b;b=temp;}//实现最大堆void max_heapify(int A[], int i){int l=left(i);int r=right(i);int lagest;if(l<A[0]&&A[l]>A[i]){lagest=l;}else{lagest=i;}if(r<A[0]&&A[r]>A[lagest]){lagest=r;}if(i!=lagest){move(A[i],A[lagest]);max_heapify(A,lagest);}}void build_max_heap(int A[]){for(int i=A[0]/2;i>=1;i--){max_heapify(A,i);}}void max_heapsort(int A[]){build_max_heap(A);for(int i=A[0];i>=2;i--){move(A[i],A[1]);A[0]--;max_heapify(A,1);}}//实现最小堆void min_heapify(int A[], int i){int l=left(i);int r=right(i);int lagest;if(l<A[0]&&A[l]<A[i]){lagest=l;}else{lagest=i;}if(r<A[0]&&A[r]<A[lagest]){lagest=r;}if(i!=lagest){move(A[i],A[lagest]);min_heapify(A,lagest);}}void build_min_heap(int A[]){for(int i=A[0]/2;i>=1;i--){min_heapify(A,i);}}void min_heapsort(int A[]){build_min_heap(A);for(int i=A[0];i>=2;i--){move(A[i],A[1]);A[0]--;min_heapify(A,1);}}
0 0
- 关于堆排序的了解和实现
- 关于堆和堆排序
- 了解堆排序并用js实现
- 堆排序的讲解和实现
- HeapSort堆排序的理解和实现
- 实现一个简单的最大二叉堆和堆排序
- 堆结构和堆排序的Java实现
- 基于二叉堆实现的优先队列和堆排序
- 堆的操作和堆排序-最小堆实现递减排序-C++
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- 堆排序的实现
- Android 源码编译,眼泪流出来
- Material Design控件使用(四)
- 移动app接口编程技术-学习实现之PHP进阶 类与对象
- 61 Hadoop Hadoop学习路线图
- Indy的TCPServer到底能支持多少个连接
- 关于堆排序的了解和实现
- mongodb 学习笔记 06 -- mongod配置文件
- LeetCode 题解(130): Bitwise AND of Numbers Range
- 成功测试opencv1.0+vc6.0
- 黑马程序员 集合框架
- Day1 学习记录
- 安卓恶意代码分析
- 【UNIX网络编程】 22~25 高级UDP套接字编程、高级SCTP 套接字编程、带外数据、信号驱动I/O
- Java 运行时监控,第 1 部分: Java 系统运行时性能和可用性监控