Java(二分查找算法实现,分别使用递归和非递归方式)
2014-04-10 16:13
357 查看
public class BinarySearch { private int[] array; private int index; private int min; private int max; public BinarySearch(int[] array) { this.array = array; min = 0; max = this.array.length - 1; } /** * 返回array中key下标,返回-1代表没找到,使用递归方式 * @param key * @return */ public int search(int key){ index = (min + max) / 2; if(array[index] == key) return index; else if(min > max) return -1; else{ if(array[index] > key) max = index - 1; else min = index + 1; } return search(key); } /** * 返回array中key下标,返回-1代表没找到,使用非递归方式 * @param key * @return */ public int search2(int key){ while(true){ index = (min + max) / 2; if(array[index] == key) return index; else if(min > max) return -1; else{ if(array[index] > key) max = index - 1; else min = index + 1; } } } }
相关文章推荐
- 如何分别使用递归与非递归实现二分查找算法
- 分别使用递归和非递归实现二分查找算法
- 二叉树遍历,已知前序遍历与中序遍历,求后续遍历 使用java(递归方式)实现
- 如何分别使用递归与非递归实现二分查找算法
- java使用递归,非递归方式实现二叉树的三种常见遍历方式
- 递归的使用——关于括号排列(分别使用Java和C++算法实现)
- java使用递归,非递归方式实现二叉树的三种常见遍历方式
- JAVA多线程:什么时候使用哪种实现方式
- 【Java】【反射】 使用反射方式去实现一个接口
- 使用 Python 实现文件递归遍历的 3 种方式
- 继承有几种方式,分别是什么,想要实现继承可以使用哪些方法
- 递归与非递归方式判断二叉树是否对称&& 按行打印二叉树【java实现】
- 分别使用递归和迭代实现快速排序
- Java使用分治递归的思想实现快速排序
- java连接数据库方式(二):单独使用MyBatis 框架实现
- Java实现递归经典案例——三角数字的多种实现方式
- Android初学习 - 分别以Java code和XML两种方式给FrameLayout布局的Activity增加一个遮罩效果的实现
- 12-界面控件之listView使用java代码和xml文件不同方式实现列表显示
- 使用单链表反转的递归和非递归实现方式
- 算法导论2.3-5答案 分别采用递归与非递归方式实现二分查找 c++实现