面试题:堆排序
来源:互联网 发布:c语言非递归遍历算法 编辑:程序博客网 时间:2024/05/18 00:01
#include <iostream>using namespace std;void heapAdjust(int* a,int i,int size){ int leftChild = i*2; int rightChild = i*2+1; if(i>=size/2){ return; } int max = i; if(leftChild<size && a[leftChild] > a[max]){ max = leftChild; } if(rightChild<size && a[rightChild] > a[max]){ max = rightChild; } if(max!=i){ swap(a[i],a[max]); heapAdjust(a,max,size); }}void heapSort(int* a,int size){ for(int i=size/2-1;i>=0;i--){ heapAdjust(a,i,size); } for(int i=size-1;i>=0;i--){ swap(a[0],a[i]); heapAdjust(a,0,i-1); }}int main(){ int a[] = {100,3,50,8,10,2323,23,9,44,55,66,22,43,12}; int size = sizeof(a)/sizeof(int); for(int i=0;i<size;i++){ cout<<a[i]<<" "; } cout<<endl; heapSort(a,size); for(int i=0;i<size;i++){ cout<<a[i]<<" "; } cout<<endl;}
0 0
- 面试题:堆排序
- Python 面试题 - 堆排序 & 演算过程
- Python 面试题 - 堆排序 & 演算过程
- 某公司面试题原地堆排序
- Python 面试题 - 堆排序 & 演算过程
- 面试题:冒泡排序,选择排序,插入排序,快速排序,归并排序,堆排序
- 程序员面试题--堆排序的C语言实现
- 基于visual Studio2013解决面试题之1207堆排序
- 面试题[堆排序]: 二维数组的Top(N)
- 面试题:堆和队列
- 面试题-堆和栈
- 面试题----选择排序
- 面试题---冒泡排序
- #面试题#稳定排序
- 冒泡排序--面试题
- 面试题之排序
- 面试题:插入排序
- 排序算法面试题
- Android_AFinal框架使用详解
- 有向图的拓扑排序~TopologicalSort
- FPGA开发之数据传输模块
- OC NSSet、NSMutableSet、NSArray、NSMutableArray
- 国外学位论文查找
- 面试题:堆排序
- VSS 在Java开发环境MyEclipse中的应用介绍
- 项目 1 动态链表体验(1)
- UVa 11853 - Paintball <图论+DFS>
- Python装饰器与面向切面编程
- iOSTableView的代理函数
- 视觉直观感受 7 种常用的排序算法
- centos(6.5.6.6) 视频监控解决方案 perfect
- 记事本