折半查字法



public class 折半查字法 {


/**
* 只有有序的序列(递增或递减)才能使用折半查找算法进行元素的查找。
* 一般只适用于顺序存储结构的序列查找,不适用于链表。
*/
public static void main(String[] args) {
int[] a = {1,3,4,9,2,56,78,};
int i = Seach(a,4);
System.out.println(i);
}


static int Seach(int arr[],int key)
{
int low =0, high = arr.length-1, mid;
while(low <= high){
mid = (low+high)/2;
if(arr[mid]==key){
return mid; //查找成功,返回mid
}
if(key>arr[mid]){
low = mid+1; //在后半序列中查找
}else{
high = mid -1; //在前半序列中查找
}
}
return -1;  //查找失败,返回-1
}
}

你可能感兴趣的:(java)