递归——二分查找
2018-03-28 21:32
225 查看
递归实现二分查找
//在有序数组内查询是否存在某一个值 ,存在返回下标,不存在返回-1 public class 二分查找 { public static void main(String[] args) { int arr[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41 }; System.out.println(binarySerch(arr, 13)); } public static int binarySerch(int arr[], int key) { return binarySerchCore(arr, 0, arr.length - 1, key); } public static int binarySerchCore(int arr[], int left, int right, int key) { int mid = left + (right - left); if (arr[mid] == key) {// 找到返回 return mid; } if (left > right) {// 不合理下标,越界,返回 return -1; } if (key < arr[mid]) {// 左半边找 return binarySerchCore(arr, left, mid - 1, key); } if (key > arr[mid]) {// 右半边找 return binarySerchCore(arr, mid + 1, right, key); } // 都没找到 return -1; } }
相关文章推荐
- 数据结构:二分查找的递归与非递归实现--C实现
- 二分查找的C++非递归实现
- 二分查找的递归/非递归方式C++实现
- java查找算法(三)--二分非递归查找
- c++实现二分查找 递归和非递归
- Java实现折半查找(二分查找)的递归和非递归算法
- 递归实现二分查找
- 20140717 二分查找 递归和非递归
- 二分查找算法-递归-非递归实现
- 二分查找的递归与非递归
- 二分查找递归与非递归实现
- 二分查找递归与非递归总结
- 二分查找的递归和非递归实现(C++函数模版)
- java 递归二分查找
- 二分查找递归和非递归
- PHP 折半查找(二分查找) 递归与非递归法
- 二分查找(递归与非递归)
- 二分查找【循环和递归】
- 递归入门(七) ---- 二分查找
- 用递归实现的二分查找