堆删除最小元素的操作思路
2014-02-26 15:09
316 查看
1.首先将将要产生空穴处(最后一个元素)的值付给第一个(其值是最小的元素)
2.比较左右两个子的值,让child指向最小的那个
3.比较hole与最小的那个,
4.最后将tmp付给child
private void percolateDown(int hole){
int child;
AnyType tmp = array[hole];
for(;hole*2<=currentSize;hole=child){
child = hole *2;
if(child != currentSize &&
array[child+1].compareTo(array[child])<0)
{
child ++;
}
if(array[child].compareTo(tmp)<0){
array[hole] = array[child];
}else
break;
}
array[hole] = tmp;
}
2.比较左右两个子的值,让child指向最小的那个
3.比较hole与最小的那个,
4.最后将tmp付给child
private void percolateDown(int hole){
int child;
AnyType tmp = array[hole];
for(;hole*2<=currentSize;hole=child){
child = hole *2;
if(child != currentSize &&
array[child+1].compareTo(array[child])<0)
{
child ++;
}
if(array[child].compareTo(tmp)<0){
array[hole] = array[child];
}else
break;
}
array[hole] = tmp;
}
相关文章推荐
- linux系统root密码忘了怎么办 三种方法快速找回root密码
- SHH开发之路(一):SQL中包含数据库自带的特殊函数解决办法
- Linux系统调用列表
- cocos2d-x学习资源汇总
- cocos2d-x 如何实现角色在地图中的不同高低台阶行走的路线控制
- nginx负载均衡基于ip_hash的session粘帖
- javascript笔记汇总
- c++ 时间类型详解 time_t
- OpenNMS全接触-事件及通知(七)
- android计时器Chronometer类的使用
- mysql常用命令
- ApacheDS配置用户以及用户组实现SSO
- win8找回经典开始菜单
- javascript中的undefined 和 not defined
- javascript中的undefined 和 not defined
- javascript中的原型链的简单理解
- 算法面试常见问题【转】
- 关于RHEL5中yum挂载iso源引起的问题(转)
- Linux:C/Socket多路复用select
- 最大公约数问题