二分查找法的递归和非递归的实现

//二分查找法非递归实现,在一个有序的数组中查找e元素的位置,找不到返回-1 public static int binarySearch(int[] data,int e){ int l = 0; int r = data.length - 1; while (l <= r){ int mid = (l + r) / 2; if(e > data[mid]){ l = mid + 1; }else if(e < data[mid]){ r = mid - 1; }else { return mid; } } return -1; }
//二分查找法的递归实现 public static int binarySearchRecursion(int[] data,int l,int r,int e){ int mid = (l + r) / 2; if(e > data[mid] ){ return binarySearchRecursion(data,mid + 1,r,e); }else if(e < data[mid] ){ return binarySearchRecursion(data,l,mid - 1,e); }else { return mid; } }
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

【数据结构与算法】—— 二分查找

1.二分查找的概念二分查找指的是在排好序的数组中,找到目标元素。如果元素存在则返回元素的下标,不存在则返回1.下面以升序为例进行简单描述2.查找过程:取数组中间元素与查找元素target比较。如果target等于中间元素则直接返回中间元素的下标,如果target小于数组中间元素则在数组左边查找,如果target大于数组中间元素则在右边查找。重复以上步骤。

7 二分搜索树的原理与Java源码实现

1折半查找法了解二叉查找树之前,先来看看折半查找法,也叫二分查找法在一个有序的整数数组中(假如是从小到大排序的),如果查找某个元素,返回元素的索引。如下:intarrnewint{1,3,4,6,8,9};在arr数组中查找6这个元素,查到返回对应的索引,没有找到就返回1思想很简单:1先找到数组中间元素ta

一个int数组,奇数排前,偶数排后,算法实现

//奇数排前,偶数排后publicstaticvoidsortOdd(intdata){intl0;intrdata.length1;while(l<r){while(l<r&&datar%20)