您的位置:首页 > 其它

lintcode之经典二分查找

2016-06-24 15:18 302 查看
1.问题:



2. Java解法

2.1 binarySearch.java

/**
* @Solution of Binary Search
* @author xin_wang
*
*/
public class binarySearch {
public int binarysearch(int[] num,int target){
if(num==null||num.length==0){
return -1;
}
int start=0;
int end=num.length-1;
//Take care of Judge condition
while(start+1<end){
int mid=start+(end-start)/2;
if(num[mid]==target){
return mid;
}else if(num[mid]>target){
end=mid;
}else{
start=mid;
}
}
//whileLoop condition is(start+1<end),if num contains 2 elements,while Loop break,so add following codes
if(num[start]==target){
return start;
}
if(num[end]==target){
return end;
}
return -1;
}
}


2.2 binarySearchTest.java
/**
* @main()
* @author xin_wang
*
*/
public class binarySearchTest {

public static void main(String[] args) {
// TODO Auto-generated method stub
binarySearch bs=new binarySearch();
int[] a={1,7};
int b=7;
System.out.println(bs.binarysearch(a,b));
}
}

3.输出:1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息