在對陣列的二分搜索中。
private int binarySearch(int first, int last, String name){
int middle = (first last)/2;
if (catalogue[middle].getName().equals(name)){
return catalogue[middle].getNumber();
}
else{
if(catalogue[middle].getName().compareTo(name) < 0){
binarySearch(middle, last, name);
}
else {
binarySearch(first, middle, name);
}
}
return -1;
}
陣列catalogue中的每個元素都是一個Entry具有屬性name和的物件number。binarySearch應該找到Entry相同的name并回傳number那個Entry。
因為某些原因
if (catalogue[middle].getName().equals(name)){
return catalogue[middle].getNumber();
}
盡管看似到達了其他 return 陳述句,但該方法只會回傳 -1?
uj5u.com熱心網友回復:
看起來你應該更換<使用> ,并使用return從您的嵌套binarySearch()呼叫:
if(catalogue[middle].getName().compareTo(name) > 0)
return binarySearch(middle, last, name);
return binarySearch(first, middle, name);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/345304.html
標籤:爪哇
上一篇:為什么UUID.compareTo()與Java中的UUID.toString().compareTo()不同?
下一篇:反射而不是工廠模式?
