首页 > 编程知识 正文

编程实现二分查找算法,递归二分查找算法

时间:2023-05-03 15:27:47 阅读:128906 作者:2933

二分搜索又称折半搜索,线性表需要采用序贯记忆结构,元素按关键词有序排列。

检索过程:假设数组中的元素按升序排列,将数组中间位置的值与被检索值进行比较,相等时检索成功; 否则,使用中间位置下标将数组分为前后两个子数组,中间位置值大于被检查值则查找前面的子数组,中间位置值小于被检查值则查找后面的子数组。 重复上述步骤,直到找到数组的所有元素。 时间的复杂性o(logn )。

Java代码如下:

publicstaticintbinarysearch (intkey,int[] a ) {int low=0; int high=a.length - 1; wile(low=high ) int mid=low (high-low )/2; if(keya[mid] ) {high=mid - 1; }elseif(keya[mid] ) {low=mid 1; else {返回mid; } }返回- 1; //未找到}二分搜索的递归实现

publicstaticintbinarysearch (intkey,int[] a )返回rec ) key,a,0,a.length - 1 ); }私有状态intkey,int[] a,int low,int high (if ) lowhigh ) {return -1; (intmid=low )高电平)/2; if (keya [ mid ] key,a,low,mid - 1 ); }elseif(keya[mid] ) returnrec ) key,a,mid 1,high ); else {返回mid; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。