二分查找法,顾名思义,是一种一分为二的查找算法,适用于已排序的数组(大数据量),快速地找到所查找数的位置。
源代码:
/**
* @param i 数组
* @param key 要查找的Key
* @return
*/
static int binarySearch(int[] i, int key){
Arrays.sort(i);
int low = 0;
int high = i.length - 1;
//int mid = (low + high)/2;
while(low <= high){ // 计算条件,数组低下标和高下标一直在计算中变化
int mid = (low + high)>>1; // 使用>>比除法计算效率高
if(key > i[mid]){
low = mid + 1;
} else if(key < i[mid]) {
high = mid - 1;
} else {
return mid;
}
}
return -1;
}
原理:
在数组中搜索给定Key时,先确定是有序数组,然后定义数组的最高下标和最低下标high、low,再求出数组的中间下标mid=(low+high)>>1。然后判断,当low<=high成立时,若数组[mid]值大于key时,将数组下标的底值提高为mid+1,反之将高值降低为mid-1,如此,每次将搜索的范围减小一半,大幅提高搜索效率。
附图:


- 大小: 26.4 KB
分享到:
相关推荐
### C++ 二分查找法详解 在计算机科学领域,数据结构与算法是核心课程之一,其中二分查找法(Binary Search)是一种高效的查找技术,尤其适用于有序数组或列表的搜索场景。本文将深入探讨C++中实现二分查找法的具体...
二分查找法是一种在有序数组中查找特定元素的高效算法,其基本思想是将查找区间不断缩小至一半,直到找到目标元素或者确定不存在为止。在MATLAB中实现二分查找法,可以极大地提高搜索效率,尤其对于大数据量的处理。...
用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch
### 二分查找法知识点详解 #### 一、二分查找法概述 二分查找法是一种在有序数组中查找特定元素的高效算法。其基本原理是通过将目标值与数组中间元素进行比较来缩小搜索范围,从而达到快速查找的目的。由于每次比较...
用java二分查找法实现日期搜索 用java二分查找法实现日期搜索 用java二分查找法实现日期搜索
二分查找法,又称折半查找法,是计算机科学中一种高效的搜索算法,尤其适用于已排序的数据集合。在Java中,二分查找法通常用于数组或有序列表中,其核心思想是通过不断缩小搜索范围来快速定位目标元素。以下是关于...
本主题主要关注两种常见的查找方法:顺序查找法和二分查找法。这两种方法在不同的场景下各有优势,理解并能熟练运用它们对于优化程序性能至关重要。 首先,我们来讨论顺序查找法。这种方法是最基础的查找策略,适用...
该程序是我写的博客“一起talk C栗子吧(第二十五回:C语言实例-二分查找)”的配套程序,共享给大家使用
为了克服这一问题,本文将介绍一种经典的温度查表算法——二分查找法,并探讨其在NTC测温中的应用。 二分查找法是一种有效的在有序数组中查找特定元素的算法。其基本原理是,在每次查找过程中,算法都会将查找范围...
二分查找法是一种高效的数据搜索算法,其时间复杂度为O(log n),在处理大量有序数据时具有显著优势。在算法复杂度分析中,时间复杂度是衡量算法效率的重要指标,按照优劣排序大致为:O(1)、O(log n)、O(n)、O(n log ...
二分查找法是一种在有序数组中寻找特定元素的高效搜索算法。它的基本思想是通过不断地将待搜索区域减半,逐步缩小目标元素的可能位置范围,直到找到目标元素或者确定其不存在为止。在GD32F303这样的单片机上,二分...
假设有一个人要我们猜0-99之间的一个数,那么最好的方法就是从0-99的中间数49开始猜。 如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。...二分查找的工作方法就是如此。
二分查找法 课件 描述了二分查找的前提条件 和基本思想,算法过程
二分查找法,又称折半查找,是一种在有序数组中高效寻找特定元素的搜索算法。它的核心思想是通过不断地将待查找的区间减半来快速定位目标元素。以下是关于二分查找法的详细说明: 1. **使用前提**:二分查找法要求...
二分查找法也称为折半查找法,它是在有序数组中进行查找的一种高效方法。这种方法利用了数组有序的特点,通过不断将查找区间对半分割来减少搜索范围,从而显著提高查找效率。二分查找的时间复杂度为O(logn),这使得...
折半查找法,又称二分查找法,是一种在有序数组中高效寻找目标值的算法。其核心思想是利用数组的有序性,通过不断缩小搜索范围,以递归或迭代的方式快速定位目标值。该方法特别适合于大规模数据的查找,因为它的平均...
二分查找法是一种在有序数组中寻找特定元素的搜索算法,具有高效的特点。它通过将查找范围不断减半,直到找到目标元素或者确定其不存在为止。这种方法尤其适用于大型且已经排序的数据集,如电话簿、数据库索引等。在...
这里我们将讨论如何利用二分查找法,即折半查找法,来实现这一过程。 首先,我们需要理解PT100的基本工作原理。PT100的全称是铂100,意味着当温度为0℃时,它的阻值为100欧姆。随着温度升高,电阻值也会线性增加。...