二分查找 java递归和非递归实现
2017-08-12 09:48
471 查看
递归方法
非递归方法
public static int rank(int []a , int x, int lo, int hi) { if(hi<lo) return -1; if(a[lo+(hi-lo)/2]>x) return rank(a,x,lo,lo+(hi-lo)/2-1); else if(a[lo+(hi-lo)/2]<x) return rank(a,x,lo+(hi-lo)/2+1,hi); else return a[lo+(hi-lo)/2]; }
非递归方法
public static int rank(int[]a,int key) { int hi = a.length-1; int lo = 0; while(lo<=hi) { int mid = lo+(hi-lo)/2; if (key > a[mid]) lo = mid +1; else if (key < a[mid]) hi = mid -1; else return a[mid]; } return -1; }
相关文章推荐
- java使用递归和非递归实现二分查找
- 二分查找的递归与非递归实现【Java版】
- Java实现折半查找(二分查找)的递归和非递归算法
- 用递归实现二分查找 JAVA
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现二分查找--非递归
- 二分查找递归和非递归(java实现)
- Java实现数组二分查找及递归二分查找
- 【转】Java实现折半查找(二分查找)的递归和非递归算法
- java实现 二分查找 非递归与递归2种方式
- Java实现折半查找(二分查找)的递归和非递归算法
- java递归实现二分查找
- 用递归实现的二分查找
- 二分查找的递归和非递归实现
- 漫谈递归:二分查找算法的递归实现
- 二分查找的递归和非递归实现
- 漫谈递归:二分查找算法的递归实现