二分查找(递归与非递归方式)
来源:互联网 发布:红警全图作弊器软件 编辑:程序博客网 时间:2024/05/20 09:47
@Testpublic void testBinarySearch() {int[] arr = { 1, 2, 3, 4, 5 };// 非递归实现,返回对应的序号System.out.println(BinarySearch(arr, 5));// 递归实现,返回对应的序号System.out.println(BinSearch(arr, 5));}/** * 非递归实现,返回对应的序号 * * @author: kpchen * @createTime: 2015年1月6日 下午8:21:55 * @history: * @param arr * 数组 * @param key * 查找数 * @return int 返回位置 */int BinarySearch(int[] arr, int key) {if (arr == null || arr.length < 1) {return -1;}int low = 0;int high = arr.length - 1;while (low <= high) {int mid = (low + high) / 2;if (key == arr[mid]) {return mid;} else if (key < arr[mid]) {high = mid - 1;} else {low = mid + 1;}}return -1;}/* * 递归实现,返回对应的序号 */int BSearch(int[] arr, int low, int high, int key) {if (arr == null || low > high) {return -1;}int mid = (low + high) >> 1;if (arr[mid] == key) {return mid;} else if (arr[mid] > key) {return BSearch(arr, low, mid - 1, key);} else {return BSearch(arr, mid + 1, high, key);}}/* * 将递归实现的方法封装起来 */int BinSearch(int[] arr, int key) {return BSearch(arr, 0, arr.length - 1, key);}
0 0
- 二分查找(递归与非递归方式)
- 二分查找法(递归与非递归方式)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- 二分查找(递归与非递归)
- c++二分查找实现(非递归和递归方式)
- c++二分查找实现(非递归和递归方式)
- 二分查找递归与非递归总结
- 递归与非递归进行二分查找
- 二分查找递归与非递归实现
- android之service
- Buffalo Ajax框架使用
- Android onTouchEvent, onClick及onLongClick的调用机制
- 简单理解jQuery中$.getJSON、$.get、$.post、$.ajax用法
- cursor
- 二分查找(递归与非递归方式)
- 注释与变量
- 开源ETL工具--Kettle的简易使用实例
- hdu-1213 how many tables
- [leetcode 75] Sort Colors
- android之service(我也是学习别人的)
- PostgreSql盲注相关代码
- 利用sqlserver查询分析器,批量插入数据
- Java正则表达式