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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。