算法书第一个程序,二分查找
代码如下
public class BinarySearchSecond {
public static void main(String[] args) {
int[] a = {12,23,45,1,5,89,45,123,18};
Arrays.sort(a);
for(int b : a) {
System.out.print(b+",");
}
Boolean flag = BianrySearch(13,a);
System.out.println(flag);
}
private static Boolean BianrySearch(int i,int[] a) {
if(i<a[0]||i>a[a.length-1]) {
return false;
}else if(i==a[0] || i== a[a.length-1]) {
return true;
}else {
int head = 0;
int tail = a.length-1;
while(head<tail) {
int mid = (head + tail)/2+1;
if(i>a[mid]) {
head = mid+1;
}else if(i<a[mid]) {
tail = mid-1;
}else {
return true;
}
}
}
return false;
}
}
想算法还是用笔,用一个例子在纸上写下来比较好。起码思路清晰