java实现二分查找-两种方式,二分法查找java代码
什么是二分法搜索:
二分法是二分搜索法,它按顺序搜索指定的元素,设置最小索引(低)、最大索引(高-1)和中间值mid((低高-1)/2)。在这个搜索中,如果中间值小于指定元素,就让low=mid 1,如果中间值大于指定元素,就让height=MID-1;
代码实现:(免费视频教程分享:java视频教程)
导入Java . util . ArrayList;
导入Java . util . arrays;
导入Java . util . collections;
导入Java . util . list;
导入Java . util . scanner;
公共类Main2 {
公共静态void main(String[] args) {
Scanner sc=新扫描仪(system . in);
int arr[]={ 2,5,6,8,9,4,7 };
数组. sort(arr);
Int deix (index)=getxiabiao(arr,7);
}
public static int getxia Biao(int[]arr,int key) {
int heigh=arr . length-1;
int low=0;
int mid=0;
while (low=heigh) {
mid=low(高-低)/2;
if (arr[mid]==key) {
返回mid
} else if (arr[mid] key) {
低=中1;
} else if (arr[mid] key) {
heigh=mid-1;
}
}
return-1;
}
}中间值有两种设置方式;
算法1: mid=(低高)/2
第二种算法:mid=low(高低)/2
算法一乍一看很简洁,算法二提取出来之后,和算法一没什么区别。但其实是有区别的。
第一种算法,在极端情况下,(低高)有溢出的风险,进而得到错误的mid结果,导致程序出错,而第二种算法可以保证计算出的mid一定大于低小于高,不存在溢出问题。
相关文章和教程推荐:java入门。以上是爪哇二分搜索法的详细情况。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。