二分法查找(折半查找):前提是在已经拍好序的数组中,通过将待查找的元素与中间索引值对应的元素进行比较;若大于中间索引值对应的元素,去右半部分查找,否则,去左半部分查找。依次类推。值到找到为止;找不到就返回一个负数。
int[] nums ={12,45,748,64,79,15};
//二分查找算法
public static int binarySeach(int[] num,int key){
int start = 0; //开始下标
int end = num.length-1; //结束下标
while(start <= end){
int middle = (start+end)/2
if(num[middle]>key){
start = middle + 1
}else if(num[middle]<key){
end = middle - 1;
}else{
return middle;
}
}
return -1;
}
注意:折半查找要求线性表必须采用顺序存储结构,而且表中元素关键词有序排序。