在您可以通过间接访问实际访问的数组中进行二进制搜索的最佳方法是什么?
这意味着我有一个Integer[]
存储 a 的索引,该索引String[]
表示String[]
Eg的排序版本,Integer[] idxes= {5, 4, 0, 3 , 1, 2}
这意味着String[5]
orString[idxes[0]]
是字典顺序上最低的字符串。
我希望描述清楚。如果它是 的一部分,那么
通过idexes
for a进行二进制搜索的最佳方法是什么?String
String[] words
我所做的是以下内容:
int pos = Arrays.binarySearch(idexes, -1, new Comparator<Integer>(){
@Override
public int compare(Integer o1, Integer o2) {
if(o1 == -1){
return k.compareTo(words[o2]);
}
else{
return words[o1].compareTo(k);
}
}
});
k
搜索词在哪里,words[]
是String[]
我前面提到的。
这行得通,但我不喜欢我在api-1
中传递的内容。
有没有更好的方法来解决这个问题? binarySearch