查找算法 折半查找算法
来源:互联网 发布:ssl smtp 端口 编辑:程序博客网 时间:2024/06/05 04:33
/** * 折半查找算法 Binary Search * @param a 一个有序的集合(本次为由小到大) * @param x 需要查询的值 * ps: 首先使用折半算法的时候 集合必须是有序的 * eg: a[1,3,5,7,9] x 3 * a mid low height * [1,3,5,7,9] 2 0 1 * [1,3] 0 1 1 * [3] 1 - - * 最终返回1 也就是3在集合的索引是1 * 备注:由以上分析不难得出 若集合中存在该值 则返回的是程序第一次查到该值所在的索引 * 若 该集合出现重复的数据 可能返回的不是其在集合的最小索引 * 建议:使用折半查找算法 使用的集合是有序且值不重复 结果则是最精准的 若有序但存在重复值 会存在误差 * */public static int binarySearch(int[] a, int x) { int low = 0, height = a.length - 1; while (low <= height) { int mid = (low + height) / 2; if (a[mid] > x) { height = mid - 1; } else if (a[mid] < x) { low = mid + 1; } else { return mid; } } return -1;}
0 0
- 查找算法 折半查找算法
- 查找算法之折半查找
- 查找算法之折半查找
- 查找算法之折半查找
- 算法 二分查找(折半查找)
- 查找算法之折半查找
- 【查找算法】之折半查找
- 查找算法·折半查找
- 折半查找算法示例
- 折半查找算法实现
- 算法-折半查找
- 折半查找算法
- 折半查找算法
- 算法:折半查找法
- 折半查找算法
- 折半查找算法
- 验证折半查找算法
- 验证折半查找算法
- Android内存优化(使用SparseArray和ArrayMap代替HashMap)
- 一句话解决AndroidStudio编译时候提示方法超过65535
- redis配置详解(2.x)
- 如何查看某个端口被谁占用
- Unity3D中自带事件函数的执行顺序
- 查找算法 折半查找算法
- 国内maven远程仓库配置
- mysql动态建表
- 第十六周项目1(1)验证算法1—直接插入排序
- java基础数据类型与String类型区别
- Oracle 11g安装教程
- 第16周 项目1-验证算法(冒泡排序)
- Java 动态代理作用是什么?
- 通过SQL直接返回VO