【发布时间】:2017-04-04 21:30:55
【问题描述】:
我有数组 {1,2,3,4,4,4,5} 我希望我的函数返回索引为 4。 例如:在位置 4,5,6 找到 4
public void binarySearch(int value){
sort(); // sorting the array
int index=-1;
int lower=0;
int upper=count-1;
while(lower<=upper){
int middle=(lower+upper)/2;
if(value==array[middle]){
index=middle;
System.out.println(value+ " found at location "+(index+1));
break;
}
else if(value<array[middle]){
upper=middle-1;
}
else lower=middle+1;
}
}
【问题讨论】:
-
为什么不考虑创建一个本地 List
来保存返回值然后返回列表? if(value==array[middle]){ mreturnlist.add(middle); ...重新运行mreturnlist; -
您的代码在做什么,它与您的预期结果有何不同?
-
@MichaelL。我的代码只返回第一个索引,在这种情况下“在位置 4 找到 4”
-
@OnurEmrecanÖzcan 你能把代码发到这里吗??
标签: java binary-search