二分查找的递归和非递归实现
来源:互联网 发布:tornado和nginx 编辑:程序博客网 时间:2024/05/21 10:22
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, mid-1); } if(arr[mid] < target) { return binSearch2(arr, target, mid+1, right); } return -1; } public static void main(String[] args) { int[] testArr = new int[]{1,2,3,5,8,9,12,13,15,20}; System.out.println(binSearch1(testArr, 3)); System.out.println(binSearch2(testArr, 3, 0, 10)); }}
0 0
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 二分查找递归和非递归实现
- 递归和非递归实现二分查找
- 一个递归和非递归实现二分查找的代码
- C++数据结构--二分查找的递归和非递归实现
- 二分查找法的递归和非递归实现
- 二分查找的非递归和递归例程实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- 二分查找的递归和非递归实现
- (22):优先考虑静态成员类
- 隐藏tomcat黑窗口
- 使用Blat发邮件
- C语言实现顺序表增删查改操作
- leetcode-全排列(permutation)
- 二分查找的递归和非递归实现
- 安卓activity与task
- spring知识点(个人记录)
- redigo代码分析-特殊字符
- PCA原理分析
- elasticSearch 时间类型
- sky3888 Register And Play Free The Wish Master Slot Game(ibet, malaysia online casino, sky3888 regi)
- OSGI企业应用开发(一)OSGI简介
- 银联交易中撤销和退货的区别