java实现二分查找
2014-04-09 20:47
381 查看
二分查找
找到数组的中间项,比较数key和中间树的大小,如果小于中间项,就查找前半部分,如果大于中间项,就查找后半部分。
非递归实现
递归实现
找到数组的中间项,比较数key和中间树的大小,如果小于中间项,就查找前半部分,如果大于中间项,就查找后半部分。
非递归实现
public int BinarySearch(int[] a, int key){ int beginIndex=0; int endIndex=a.length-1; int midIndex=0; while(a!==null&&beginIndex<endIndex){ midIndex=(beginIndex+endIndex)/2; if(midIndex==key) return midIndex; else if(midIndex<key) beginIndex=midIndex+1; else endIndex=midIndex-1; } return -1; }
递归实现
public int BinarySearch(int[] a , int key , int beginIndex, int endIndex){ int midIndex=(beginIndex+endIndex)/2; if(a==null||beginIndex<endIndex||key<a[beginIndex]) return -1; else if(a[midIndex]==key) return midIndex; else if(a[midIndex]>key) return BinarySearch(a,key,beginIndex,midIndex-1); else return BinarySearch(a,key,midIndex+1,endIndex); }
相关文章推荐
- 【LintCode-457】经典二分查找问题(Java实现)
- 【15】-java实现二分查找
- 用递归实现二分查找 JAVA
- 算法导论Java实现-二分查找(习题2.3-5)
- 8、二分查找 JAVA实现
- Java实现二分查找的递归算法
- Java实现二分查找
- 二分查找 (java实现)
- 二分查找java语言实现
- 二分查找之Java实现
- 【Java】二分查找、插值查找、斐波那契查找的实现,及分析
- 二分查找的Java实现
- 二分查找的Java实现
- java 之 二分查找实现
- Java实现二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- c++/java/python 实现二分查找
- java实现二分查找
- java实现的选择排序、冒泡排序、二分查找
- java语言实现二分查找数据法