您的位置:首页 > 其它

堆删除最小元素的操作思路

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: