博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
堆排序
阅读量:6469 次
发布时间:2019-06-23

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

#include 
using namespace std; int parent(int i) {
return i/2; } int left(int i) {
return 2*i; } int right(int i) {
return 2*i+1; } void exchange(int &a,int &b) {
int temp; temp=a; a=b; b=temp; } void max_heapify(int *a,int i,int heap_size) {
int l=left(i); int r=right(i); int largest; if (l<=heap_size&&a[l]>a[i]) {
largest=l; } else {
largest=i; } if (r<=heap_size&&a[r]>a[largest]) {
largest=r; } if (largest!=i) {
exchange(a[i],a[largest]); max_heapify(a,largest,heap_size); } } void build_max_heap(int *a,int heap_size) {
for (int i=heap_size/2;i>=0;i--) {
max_heapify(a,i,heap_size); } } void heapsort(int *a,int heap_size) {
build_max_heap(a,heap_size); int length; length=heap_size; for (int i=length;i>=1;i--) {
exchange(a[0],a[i]); heap_size=heap_size-1; max_heapify(a,0,heap_size); } } int main() {
int a[]={
4,1,3,2,16,9,10,14,8,7,3,2,45,7,86,4,3,2,1}; int heap_size=sizeof(a)/sizeof(int)-1; heapsort(a,heap_size); for (int i=0;i<=heap_size;i++) {
cout<
<<""; } cout<

转载于:https://www.cnblogs.com/tiandsp/archive/2012/02/17/2356260.html

你可能感兴趣的文章
046 SparlSQL中的函数
查看>>
Zookeeper 的 Lua 绑定(二)
查看>>
-27979 LoadRunner 错误27979 找不到请求表单 Action.c(73): Error -27979: Requested form not found...
查看>>
[LeetCode] Minimum Depth of Binary Tree
查看>>
,net运行框架
查看>>
Java 中 Emoji 的正则表达式
查看>>
Mixin Network第一届开发者大赛作品介绍- dodice, diceos和Fox.one luckycoin
查看>>
安卓Glide(4.7.1)使用笔记 01 - 引入项目
查看>>
AndroidNote
查看>>
中金易云:为出版社找到下一本《解忧杂货店》
查看>>
Flex布局
查看>>
Material Design之 AppbarLayout 开发实践总结
查看>>
Android中的SurfaceView详解
查看>>
Flutter之MaterialApp使用详解
查看>>
DataBinding最全使用说明
查看>>
原生Js交互之DSBridge
查看>>
Matlab编程之——卷积神经网络CNN代码解析
查看>>
白洋淀周末游
查看>>
三篇文章了解 TiDB 技术内幕 —— 说计算
查看>>
在Mac下使用Python3
查看>>