折半查找(二分查找)
接下来记录下几个有意思的查找算法: 折半查找,也叫二分查找,该算法有个前提,就是数组元素要有序 主要思路是:每次比较中间那个值;每完成一次比较,范围缩小一般public class BinarySearch {public static void main(String[] args){int[] a = {1,3,5,7,9,11,13,15,17}; binarySearch(a, 1); }private static int binarySearch(int[] a, int key){ int count = 0; int low = 0; int high = a.length-1; int mid; while(low <= high){ mid = (low + high)/2; count++; if(a[mid] == key){ System.out.println("比较次数:" + count); return mid; }else if(a[mid] > key){ high = mid -1; }else{ low = mid + 1; } } return -1; } }
结果:
比较次数:3
【折半查找(二分查找)】
推荐阅读
- 超好用的PubMed文献查找管理插件—Scholarscope
- Elasticsearch|Elasticsearch 简介
- 1月尾,是2018年的十二分之一,陈先生自我独白
- 终极找 bug 大法 - 二分
- iOS|iOS Runtime 的方法缓存(存储的形式、数据结构以及查找的过程?)
- 算法|算法-二分查找
- 128
- Python笔记关于环境安装(二)模块的查找
- Python|Python 每日一练 二分查找 搜索旋转排序数组 详解
- Mysql配置问题