堆排序
来源:互联网 发布:springmvc源码包 编辑:程序博客网 时间:2024/04/29 23:24
第一次实现堆排序,花了近两个小时。
主要还是堆调整,原理网上很多,直接给出运行代码和结果:
代码:
#include <iostream>using namespace std;void adjustHeap(int number[],int k,int length){int t=number[k];int i;for(; k*2+1 < length; k=i){i=k*2+1;if(number[i] < number[i+1] && i<length-1){i++;}if(number[i] > number[k]){number[k]=number[i];number[i]=t;//}else{break;}}}void buildMaxHeap(int number[],int length){int i= (length>>1)-1;for(;i >= 0;i--){adjustHeap(number,i,length);}}void heapSort(int number[],int length){buildMaxHeap(number,length);for(int i=length-1; i>=0 ;i --){int temp=number[length-1];number[length-1] = number[0];number[0] = temp;adjustHeap(number,0,--length);}}int main(){int input[8]={2,1,4,3,99,100,56,909};heapSort(input,8);for(int i=0;i<8;i++){cout<< input[i] <<" ";}return 0;}
运行结果:
2 0
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- destoon系统两个奇怪问题及解决方法记录
- 经过调试发现Neuroph 有问题,有问题,自己用代码训练NullPointerException,beforeEpoch
- Weights and Measures - UVa 10154 dp
- 抽象类vs接口
- AfxMessageBox和MessageBox区别
- 堆排序
- iOS_18_控制器切换_NavigationController_push方式_传递数据
- 98_定时器,计时器
- 关于paypal支付集成
- 浅析JAVA设计模式之工厂模式(二)
- 冒泡排序(Java)
- Windows Phone 8.1 Update主要更新内容汇总
- hdu 2046 骨牌铺方格(递推)
- 第一篇博客