Java二分查找算法实现代码实例
这篇文章主要介绍了Java二分查找算法实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
二分查找:
两种方式:非递归方式和递归方式
主要思路:对于已排序的数组(先假定是从小到大排序),先定义两个"指针",一个"指向"首元素low,一个"指向"末尾元素high.然后,开始折半比较,即让要查找的数与数组中间的元素(索引为low+high/2)比较.若要查找的数比中间数小,说明要查找的数在数组左侧(注意前提是数组从小到大排序),否则说明该数在数组的右侧.如果low最后还比high大,俩"指针"交叉了,说明没有找到该数,即数组不存在该数.
注意事项:排序规则与数组的排序顺序有关,即从大到小排序和从小到大排序是不一样的!!!
代码如下
classBinarySearch{
//二分查找非递归方式
//arr给定已排序数组
//num要查找的数
publicstaticintsearch(int[]arr,intnum){
intlow=0;
inthigh=arr.length-1;
intmid=0;
while(low<=high){
mid=(low+high)/2;
if(numarr[mid]){
low=mid+1;
}
if(num==arr[mid]){
returnmid;
}
}
return-1;//没找到
}
//二分查找递归方式
//arr给定已排序数组
//num要查找的数
//low初始左侧指针指向第一个元素
//high初始末尾指针指向最后一个元素
publicstaticintbinarySearch(int[]arr,intnum,intlow,inthigh){
intmid=(low+high)/2;
//递归结束条件
if(low>high){
return-1;
}
if(num
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。