c++实现堆排序教程
程序员文章站
2022-06-27 22:49:50
这是算法导论上的例题
可以参考以下伪代码
c++代码
#include
using namespace std;
//交换两数大小
void exc...
这是算法导论上的例题
可以参考以下伪代码
c++代码
#include using namespace std; //交换两数大小 void exchange(int &a,int &b) { int temp; temp=a; a=b; b=temp; } //左孩子,右孩子 int left(int i) { return i*2; } int right(int i) { return i*2+1; } //维护最大堆的函数 void maxHeapify(int array[], int len, int i) { int l=left(i),r=right(i); int largest =i; if(larray[largest]) largest=l; if(rarray[largest]) largest=r; if(largest!= i) { exchange(array[largest],array[i]); maxHeapify(array,len,largest); // 递归调整 } } //排序 void heapSort(int array[],int size) { for(int i=size/2-1;i>=0;--i) { maxHeapify(array,size,i); } for(int i=size-1;i>=1;--i) { exchange(array[0], array[i]); maxHeapify(array,i,0); } } int main() { int Array[10] = {16,4,10,14,7,9,3,2,8,1}; cout<<"原始堆为:"<运行结果
上一篇: c++连接mysql
下一篇: 微信小程序(小游戏)创建的示例
推荐阅读
-
解读ASP.NET 5 & MVC6系列教程(12):基于Lamda表达式的强类型Routing实现
-
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
-
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
-
用HTML5 实现橡皮擦的涂抹效果的教程
-
android开发基础教程—文件存储功能实现
-
android开发基础教程—三种方式实现xml文件解析
-
pyqt4教程之实现windows窗口小示例分享
-
matlab如何实现曲线拟合? matlab做曲线拟合的教程
-
用python简单实现mysql数据同步到ElasticSearch的教程
-
qq旋风怎么极速下载?qq旋风极速下载效果实现教程