在有空字符串的有序字符串数组中查找
➢有个排序后的字符串数组,其中散布着一些空字符串 ,编写一个方法,找出给定字符串(肯定不是空字符串)的索引。
public class Main {
public static void main(String[] args) {
String[] arr = {"a","","ac","","ad","","b","","ba"};
int res = indexOf(arr,"b");
System.out.println(res);
}
public static int indexOf(String[] arr , String p){
int index = 0;
int end = arr.length-1;
while(index<=end){
int indexMid = index+((end-index)>> 1);
while(arr[indexMid].equals("")) {
indexMid++;
if (indexMid > end)
return -1;
}
if (arr[indexMid].compareTo(p)>0){
end = indexMid-1;
}else if (arr[indexMid].compareTo(p)<0){
index = indexMid+1;
}else{
return indexMid;
}
}
return -1;
}
}