查找算法——折半查找(Java)
来源:互联网 发布:淘宝运动鞋店铺介绍 编辑:程序博客网 时间:2024/06/07 08:11
折半查找
问题描述:给定一个整数X和整数A0,A1,A2……A(n-1),后者已经预先排序并在内存中,求下标i使得Ai = X ,如果X不在数据中,则返回i = -1。
我们首先可以想到的一种方法就是从左到右遍历,逐个匹配,运行花费线性时间。然而,这样的算法并没有考虑到题目中已经排序的这个事实,所以这种算法不能算是最优解。那么这里就引入了我们的折半查找,每次验证X是否是居中元素,如果是,即为找到;如果X小于居中元素,检查左侧部分;如果X大于居中元素,检查右侧部分。
public class BinarySearch { public static void main(String[] args) { String[] str = {"a","b","c","1","2","3"}; System.out.println(binarySearch(str , "b")); } public static <String extends Comparable <? super String>> int binarySearch(String[] a,String x){ int low = 0; int high = a.length -1; while (low <= high){ int mid = (low + high) / 2; if(a[mid].compareTo(x) < 0){ low = mid + 1; }else if(a[mid].compareTo(x) > 0){ high = mid -1; }else { return mid; } } return -1; }}
其中难以理解的地方就是
阅读全文
0 0
- 查找算法——折半查找(Java)
- java实现查找算法——折半查找(二分查找)
- 【查找算法】——顺序查找、折半查找、分块查找(索引查找)
- java折半查找算法
- 查找算法——折半查找
- java二分查找算法(折半查找算法)实例
- 查找-二分查找(折半查找)-java
- 算法--二分查找(折半查找)-Java实现
- Java程序实现二分法查找(折半查找)算法
- java算法之折半查找
- java算法之折半查找
- 查找算法—折半查找算法分析与实现(Python)
- 二分查找算法(折半查找算法)
- 二分查找算法(折半查找算法)
- 折半查找算法(二分查找算法)
- 算法初探——查找算法(顺序,折半)
- 验证算法——折半查找
- 【验证算法——折半查找】
- redis远程连接
- Hibernate的一个注释 @Transient
- Java虚拟机,GC垃圾回收机制
- web页面加载
- 集客开发工作流程
- 查找算法——折半查找(Java)
- 在linux服务器上进行vue2的动态编译
- centos7.2 influxdb安装与简单使用
- 数据库操作--增删改查
- hdu 2082 找单词(母函数 初识)
- js中==和===的区别
- centos7 中的一些常用命令
- Android高性能App开发规范要点
- 针对从远程服务器下载大文件到本地