c++实现最大堆维护maxHeapify及运行实例结果
2017-12-27 00:18
429 查看
来源于算法导论第三版
参考伪代码
c++代码
运行结果
参考伪代码
c++代码
#include <iostream> 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 size,int i) { int l=left(i),r=right(i); int largest=i; if(l<=size&&array[l]>array[largest]) largest=l; if(r<=size&&array[r]>array[largest]) largest=r; if(largest!=i) { exchange(array[i],array[largest]); maxHeapify(array,size,largest); } } int main() { int Array[10]={16,4,10,14,7,9,3,2,8,1}; cout<<"原始堆为"<<endl; for(int i=0;i<10;++i) cout<<Array[i]<<" "; maxHeapify(Array,10,1); cout<<endl<<"经过维护后的最大堆为"<<endl; for(int i=0;i<10;++i) cout<<Array[i]<<" "; return 0; }
运行结果
相关文章推荐
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- c++实现最大堆维护maxHeapify及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 最大子数组问题-c++代码实现及运行实例结果
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果