java - 最小堆删除方法永远运行
问题描述
大家好,我是编码初学者,我写了这个方法 delete from min-heap 但它一直在运行,当我使用调试器时,答案是正确的,但程序不会终止。
public void delete(){
int temp= array[0];
array[0]=array[counter-1];
array[counter-1]=0;
counter=counter-1;
int parentIndex = 0;
int leftChildIndex = (parentIndex/2)+1;
int rightChildIndex = (parentIndex/2)+2;
while ((array[parentIndex] >= array[leftChildIndex] || array[parentIndex] >= array[rightChildIndex] )){
if(array[leftChildIndex]<array[rightChildIndex]){
int t =array[parentIndex] ;
array[parentIndex]= array[leftChildIndex] ;
array[leftChildIndex]=t;
parentIndex=leftChildIndex;
leftChildIndex = (parentIndex/2)+1;
rightChildIndex=(parentIndex/2)+2;
}else {
int t =array[parentIndex] ;
array[parentIndex]= array[rightChildIndex] ;
array[rightChildIndex]=t;
parentIndex=rightChildIndex;
leftChildIndex = (parentIndex/2)+1;
rightChildIndex=(parentIndex/2)+2;
}
}
}
解决方案
推荐阅读
- fortran - 使用 ifort 为派生类型重载加法时“操作无效”
- ember.js - 删除终端中显示的 Ember Handlebars 缩进错误
- bash - 向 CSV 文件添加新列
- c# - 重命名图片的副本
- sql - 如何在 PL/SQL 中捕获约束违规并给出用户定义的错误消息?
- javascript - 为父 Promise func 中的变量返回子 Promise func?
- javascript - 问题javascript函数将字符串值转换为int删除第一个零
- java - 使用junit在spring测试中加载属性文件
- javascript - 显示文件下载对话框时关闭当前弹出窗口
- webpack - 来自 webpack 的 DataCloneError