二分查找之Java实现
来源:互联网 发布:js设置select不可用 编辑:程序博客网 时间:2024/05/19 21:00
非递归与递归两种方法实现:
/** * 二分查找:非递归的方法 * 缺点:有序数组中含有多个待查找的数值的时候,这种方法只能显示一个 * @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)
阅读全文
0 0
- 二分查找之Java实现
- 二分查找之Java实现
- java 之 二分查找实现
- 二分查找之java实现
- 二分查找之Java实现
- 算法学习之java实现二分查找
- Java实现算法之--二分查找法
- java之二分查找算法实现
- Java算法实现之二分查找
- Java实现 二分查找
- Java实现二分查找
- java实现二分查找
- java实现二分查找
- Java二分查找实现
- java 实现二分查找
- Java实现二分查找
- Java实现二分查找
- JAVA实现二分查找
- CF306C:White, Black and White Again(组合数)
- hdu
- Androidpn项目搭建
- INSTALL_FAILED_INVALID_APK: Split lib_slice_5_apk was defined multiple times异常
- MyBatis的动态sql的like拼接
- 二分查找之Java实现
- 彻底搞懂HTTP协议
- nvm 安装 node
- python - 实现带下标索引的遍历
- HDU 5937 && 2016CCPC杭州 E: Equation(DFS)
- maven项目的jdk
- Spring MVC 实践
- Hibernate缓存机制
- 自定义图形框样式一