二分查找的前提是數(shù)組有序饿悬。 ? 下面是代碼:
public class BinarySearch {
int binarySearch(int a[],int key){
int high,low,position;
high=a.length-1;
low=0;
while(high>=low){
position = (low+high)/2;
if(a[position]==key){
return position;
}
else if(a[position]>key){
high=position - 1;
}
else{
low = position + 1;
}
}
return -1;
}
public static void main(String args[]){
int a[]={1,2,3,4,5,6,7,8};
BinarySearch b=new BinarySearch();
System.out.println(b.binarySearch(a, 2));
}
};
說說關鍵吧存筏! 二分查找很簡單,因此重要的是要在很短時間內(nèi)將二分查找寫出來闷串。因此需要記憶的是while 循環(huán)的條件是high>=low 不是>low缭乘。 其他的好像沒什么困難的传轰。二分查找的時間復雜度是O(logn)