二分查找之Java实现
2017-08-18 13:09
441 查看
非递归与递归两种方法实现:
其时间复杂度为:O(log2n)
/** * 二分查找:非递归的方法 * 缺点:有序数组中含有多个待查找的数值的时候,这种方法只能显示一个 * @param src //带查找的有序数组 * @param des //带查找的数值 * @return //查找数值的下标,没有查找到返回-1 */ public int binarySearch(int[] src, int des) { int begin = 0; int end = src.length - 1; while (begin <=end) { int middle = begin + (end - begin) / 2; if(des==src[middle]) return middle; else if(des<src[middle]){ end=middle-1; } else if(des>src[middle]){ begin=middle+1; } } return -1; } /** * 递归的方法进行二分查找 * @param src * @param des * @param begin //开始查找数组的下界 * @param end //开始查找数组的上界 * @return //查找数值的下标,没有查找到返回-1 */ public int binarySearch(int[] src,int des,int begin,int end){ int middle=begin+(end-begin)/2; if(des<src[begin]||des>src[end]||begin>end){ return -1; } if(des<src[middle]){ return binarySearch(src,des,begin,middle-1); }else if(des>src[middle]){ return binarySearch(src,des,middle+1,end); }else { return middle; } }
其时间复杂度为:O(log2n)
相关文章推荐
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- java实现二分查找
- 二分查找之Java实现
- 算法导论Java实现-二分查找(习题2.3-5)
- Java实现折半查找(二分查找)的递归和非递归算法
- java实现二分查找
- JAVA实现二分查找
- 二分查找的java实现
- java语言实现二分查找数据法
- 【转】Java实现折半查找(二分查找)的递归和非递归算法
- 二分查找之Java实现
- java 实现二分查找法
- java 二分查找算法实现
- 算法导论Java实现-二分查找运用(习题2.3-7)
- java实现顺序查找和二分查找
- 线性查找与二分查找(java实现)
- Java实现折半查找(二分查找)的递归和非递归算法