java 实现二分查找法
来源:互联网 发布:新开的淘宝店怎么找货 编辑:程序博客网 时间:2024/05/22 10:48
/** * 二分查找又称折半查找,它是一种效率较高的查找方法。 * 【二分查找要求】: * 1.必须采用顺序存储结构 * 2.必须按关键字大小有序排列。 */public class SearchUtils { /** * 二分搜索:在整个数组中查找元素 * @param srcArray 原数组 * @param des 查找目标 * @return 返回元素所在索引,如果没查到,则返回-1 */ public static int binarySearch(int[] srcArray,int des){ int high = srcArray.length - 1; int low = 0; while (low <= high){ int middle = (low + high) / 2; if(des == srcArray[middle]){ return middle; }else if(des < srcArray[middle]){ high = middle - 1; }else{ low = middle + 1; } } return -1; } /** * 二分查找:在一定范围中查找元素 * @param srcArray 原数组 * @param des 查找目标 * @param beginIndex 开始索引 * @param endIndex 结束索引 * @return 返回元素所在索引,如果没查到,则返回-1 */ public static int binarySearch(int[] srcArray,int des,int beginIndex,int endIndex){ int middle = (beginIndex + endIndex) / 2; if(des < srcArray[beginIndex] || des > srcArray[endIndex] || beginIndex > endIndex){ return -1; } if(des < srcArray[middle]){ return binarySearch(srcArray,des,beginIndex,middle-1); }else if(des > srcArray[middle]){ return binarySearch(srcArray,des,middle+1,endIndex); }else{ return middle; } } /** * 测试 * @param args */ public static void main(String[] args) { int[] src = new int[] {1, 3, 5, 7, 8, 9}; System.out.println(binarySearch(src, 3)); System.out.println(binarySearch(src,3,0,src.length-1)); }}
阅读全文
1 0
- java 实现二分查找法
- java 实现二分查找法
- java 实现二分查找法
- java 实现二分查找法
- 二分查找法-java实现
- java 实现二分查找法
- java 实现二分查找法
- 二分查找法---java实现
- java 实现二分查找法
- 二分查找法java实现
- Java实现二分查找法
- java实现二分查找法
- java 实现二分查找法
- Java实现 二分查找
- Java实现二分查找
- java实现二分查找
- java实现二分查找
- Java二分查找实现
- 使用Geth1.6搭建私有链
- zookeeper安装
- weka实际操作--构建分类、回归模型
- 随笔
- 深入分析Http协议
- java 实现二分查找法
- 常用命令
- 【Android】Fragment+Viewpager实现底部导航栏(带小红点)
- 安全技术网站+开源网址
- CMS 垃圾回收
- 任意进制转换 python实现
- quartz springh和 spring-task 定时任务
- android下pthread相关概念理解
- Android XML布局文件解析过程源码解析