博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二分查找的递归和非递归实现
阅读量:6880 次
发布时间:2019-06-27

本文共 1505 字,大约阅读时间需要 5 分钟。

最近在复习基础知识,下面是二分查找算法的递归和非递归实现:

package sortandsearch;/** *@Description:

二分查找的递归和非递归算法

*@author 王旭 *@time 2016-3-3 上午10:36:29 */public class BinarySearch { //非递归 public static int binSearch1(int[] arr, int target) { if(arr == null || arr.length == 0) return -1; int left = 0, right = arr.length - 1; while(left <= right) { int mid = (left + right) / 2; if(arr[mid] == target) { return mid; } if(arr[mid] < target) { left = mid + 1; } if(arr[mid] > target) { right = mid - 1; } } return -1; } //递归 public static int binSearch2(int[] arr, int target, int left, int right) { if(arr == null || arr.length == 0) return -1; if(left > right) { return -1; } int mid = (left + right) / 2; if(arr[mid] == target) { return mid; } if(arr[mid] > target) { return binSearch2(arr, target, left, right - 1); } if(arr[mid] < target) { return binSearch2(arr, target, left + 1, right); } return -1; } public static void main(String[] args) { int[] testArr = new int[]{1,2,3,5,8,9,12,13,15,19,20,30,50,89,101}; System.out.println(binSearch1(testArr, 13)); System.out.println(binSearch2(testArr, 101, 0, 14)); }}

 

转载于:https://www.cnblogs.com/wxisme/p/5237773.html

你可能感兴趣的文章
如何完成.Net下XML文档的读写操作
查看>>
QTP的那些事--对已经存在Excel文件修改后保存时,会弹出一个询问对话框
查看>>
UVA 11174 Stand in a Line 树dp+算
查看>>
C语言中函数strcpy ,strncpy ,strlcpy的用法【转】
查看>>
mysql join 的同时可以筛选数据
查看>>
Code First开发系列之管理并发和事务
查看>>
Spark SQL概念学习系列之为什么使用 Spark SQL?(二)
查看>>
VirtualBox-Linux系统安装增强功能
查看>>
ssh/ssh2登录
查看>>
mongodb对数组元素及内嵌文档进行增删改查操作(转)
查看>>
【python3.5】安装lxml中没有etree模块的问题解决方法
查看>>
pgpool-II的性能缺陷
查看>>
spin_lock浅析【转】
查看>>
MVC前台Post/Get异步获得数据时参数的取值问题
查看>>
8086/8088指令详解
查看>>
iOS:自定义代码块{ }
查看>>
C# 远程链接指定计算机,获取该计算机的计算机名等信息
查看>>
[Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)
查看>>
OpenGL入门笔记(十一)
查看>>
kill命令
查看>>