二分查找(java),
分享于 点击 45033 次 点评:268
二分查找(java),
二分查找又称折半查找,是一种效率比较高的查找算法。
二分查找的前提条件:
1.按照顺序结构存贮
2.数据是有序的
基本原理:
1.选取一个mid=(low+high)/2值,使其与key值比较;
2.若key<nums[mid],则使数组最后一个元素下标high移到mid-1;
3.若key>nums[mid],则使数组第一个元素下标low移到mid+1;
4.若key==nums[mid],则返回mid,结束循环;
5.每次循环开始后high或者low的值都会改变,所以mid的值也一直会刷新;
6.若循环完毕,并未找到给定的key值,则return -1;
代码演示:
public class binarySearch {public static int binarysearch(int nums[],int key) {
int low=0;
int high=nums.length-1;
int mid;
while(low<=high) {mid=(low+high)/2; //计算mid的下标,并在每次循环后刷新mid的位置
if(key>nums[mid]) {
low=mid+1; //将下界下标移到mid右边,重新定义mid位置
}else if(key<nums[mid]) {
high=mid-1; //将上届下标移到mid左边,重新定义mid位置
}else { //key与中间值相等的情况
return mid;
}
}
return -1; //执行到这一步,说明并未找到给定的key值
}
public static void main(String[] args) {
int A[]= {1,2,3,4,5,6,7,8,9};
System.out.println(binarysearch(A,7));
}
}
输出结果:
6
相关文章
- 暂无相关文章
用户点评