[各种面试题] 堆的实现
来源:互联网 发布:中国石化加油卡淘宝 编辑:程序博客网 时间:2024/06/07 07:36
比较常规的题,试着写了下。
int heap[100];int n;void adjust_down(int rt){if(rt<1||rt>n)return;if ( rt*2>n )return;else{int val=heap[rt<<1];int child=rt<<1;if(rt*2+1<=n&&heap[rt*2+1]<val){val=heap[rt*2+1];child=rt<<1|1;}if(val>=heap[rt])return;swap(heap[rt],heap[child]);adjust_down(child);}}void adjust_up(int rt){while(rt!=1){int par=rt>>1;if(heap[par]>=heap[rt]){swap(heap[par],heap[rt]);rt=par;}else{break;}}}void heap_push(int val){heap[++n]=val;adjust_up(n);}void make_heap(){int start=n>>1;for(int i=start;i>=1;i--)adjust_down(i);}void sort_heap(){while(n>1){swap(heap[1],heap[n]);n--;adjust_down(1);}}
- [各种面试题] 堆的实现
- 程序员面试题--堆排序的C语言实现
- 单链表含环的各种面试题
- 堆实现及常见面试题
- [各种面试题]用random2实现random6
- 实现堆的各种操作
- 【面试题】堆和栈的区别
- 面试题:堆排序
- [各种面试题] 困难的数
- [各种面试题] 树的最小高度
- [各种面试题] 交叉大小的序列
- 【面试题】【c++】 实现只能在堆上实例化的类
- C++ 堆排序算法的实现与改进(含笔试面试题)
- 各种面试题
- 各种面试题
- [各种面试题] 链表快排
- [各种面试题] threesum
- 前端各种面试题
- 关于 qt 移植到 omap3530 总结
- OCP-1Z0-051-V9.02-175题
- C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递
- 2014继续加油
- C# WinForm项目打包
- [各种面试题] 堆的实现
- 给一个正整数N,打印NxN的蛇形矩阵(一) 之空间复杂度O(NxN)
- php中文字符串翻转
- 图像放缩之双线性内插值
- 网桥和交换机的工作原理及区别
- Android Please ensure that adb is correctly located at问题解决
- iOS自定义字体
- jdk6中的jps,jstack,jmap,jhat,jconsole命令
- oracle null备忘