/**
* 有个排序后的字符串数组,其中散布这一些空字符串,编写一个方法,
* 找出给定字符串的索引。
* @author 田秀彪
*
*/
public class Case03_特殊有序数组中查找 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String arr[] = { "a", "", "ac", "", "ad", "b", "", "ba" };
int res = indexOf(arr, "b");
System.out.println(res);
}
private static int indexOf(String[] arr, String p) {
// TODO Auto-generated method stub
int begin = 0;
int end = arr.length - 1;
while (begin <= end) {
int indexOfMid = begin + ((end - begin) >> 1);
while (arr[indexOfMid].equals("")) {
indexOfMid++;
if (indexOfMid > end)
return -1;
}
if (arr[indexOfMid].compareTo(p) > 0) {
end = indexOfMid - 1;
} else if (arr[indexOfMid].compareTo(p) < 0) {
begin = indexOfMid;
} else {
return indexOfMid;
}
}
return -1;
}
}
特殊有序数组中查找
最新推荐文章于 2021-10-25 21:07:36 发布