package com.xmjr.test;
public class Test {
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.binarySearch(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 8));
}
public int binarySearch(int[] data, int aim) {// 以int数组为例,aim为需要查找的数
int start = 0;
int end = data.length - 1;
int mid = (start + end) / 2;// a
while (data[mid] != aim && end > start) {// 如果data[mid]等于aim则死循环,所以排除
if (data[mid] > aim) {
end = mid - 1;
} else if (data[mid] < aim) {
start = mid + 1;
}
mid = (start + end) / 2;// b,注意a,b
}
return (data[mid] != aim) ? -1 : mid + 1;// 返回结果
}
}
public class Test {
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.binarySearch(new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }, 8));
}
public int binarySearch(int[] data, int aim) {// 以int数组为例,aim为需要查找的数
int start = 0;
int end = data.length - 1;
int mid = (start + end) / 2;// a
while (data[mid] != aim && end > start) {// 如果data[mid]等于aim则死循环,所以排除
if (data[mid] > aim) {
end = mid - 1;
} else if (data[mid] < aim) {
start = mid + 1;
}
mid = (start + end) / 2;// b,注意a,b
}
return (data[mid] != aim) ? -1 : mid + 1;// 返回结果
}
}