1.二分查找:待查找数组必须有序
例如:数组为:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15(偶数个取中间2个其中任何一个作为中间元素)
首先一分为二,8为中间的元素,直接那中间元素和待查找元素比较(待查找元素为14),14和8比,所以一下排除掉8之前,
剩下7个在取中间元素12,在和待查找元素比较,以此类推,找到匹配的元素。
/**
*@param array 要查找的数组
*@param value 待查找元素
*/
public static int binarySearch(int[] array,int value)
{
int low = 0;//数组第一元素位置
int high = array.length - 1;//数组最后元素位置
int middle;//中间元素位置
while(low <= high)
{
middle = (low + high) /2;
if(array[middle] == value)
{
return middle;
}
if(value < array[middle])
{
high = middle - 1;
}
if(value > array[middle])
{
low = middle + 1;
}
}
return -1;
}
分享到:
相关推荐
二分查找,又称折半查找,是一种在有序数组中寻找特定元素的搜索算法。它的基本思想是通过比较目标值与数组中间元素的大小关系,不断缩小搜索范围,直到找到目标值或者确定目标值不存在为止。这种方法相比于线性查找...
二分查找Binary_Search套路和解题模板【LeetCode刷题套路教程3】
二分查找,也称为折半查找,是一种在有序数组中搜索特定元素的高效算法。它主要利用了分治策略,将查找范围不断减半,从而快速定位目标值。在Python中,二分查找可以用于处理大量数据,尤其适用于静态数据集,因为...
二分查找算法,又称折半查找,是一种在有序数组中搜索特定元素的高效搜索算法。它的基本思想是将数组分成两个部分,通过比较中间元素与目标值,每次都将搜索范围缩小一半,直到找到目标值或者搜索范围为空。二分查找...
二分查找(Binary Search),也称为折半查找,是一种高效的搜索算法。它适用于已排序的数组或列表,通过将待查找的目标值与数组中间元素进行比较,进而快速缩小查找范围,最终定位到目标值或确定目标值不存在于该数组...
main方法中通过创建数组和设定目标值,调用binarySearch方法并输出结果来演示二分查找的过程。 二分查找算法适用于静态数据集,即数据集不会在查找过程中发生改变。如果数组经常发生插入和删除操作,则在每次操作后...
二分搜索树(Binary Search Tree,简称BST)是计算机科学中一种非常重要的数据结构,它在处理有序数据时表现出高效性。在C++中,理解并掌握二分搜索树的概念、操作以及实现方法对于编程实践至关重要。二分搜索树的...
标题中的"BinarySearch"指的是二分查找算法,这是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分为三个部分:小于目标值的元素、等于目标值的元素和大于目标值的元素,然后逐步缩小搜索范围,直到...
总结来说,"BinarySearch_C++_算法_折半查找_"这个项目旨在展示如何在C++中利用二分查找算法来有效地在有序数组中查找目标元素。这个算法的核心在于每次将搜索区间减半,从而大大减少了查找次数,提高了效率。通过...
Java 二分查找实现 Java 二分查找是搜索有序数组中某个元素的最常用算法之一。它的实现原理是将数组分成两个部分,然后在其中一个部分继续进行搜索,直到找到目标元素或确定目标元素不存在。下面将详细介绍 Java 二...
描述: ...第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。 输出: 每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。
例如,在上述代码中,二分查找算法的实现使用了递归函数,函数BinarySearch将数组Elements分成两个部分,然后根据查找的元素是否在某一部分中,继续对该部分进行二分查找,直到找到该元素或确定该元素不存在于数组...
假设有一个人要我们猜0-99之间的一个数,那么最好的方法就是从0-99的中间数49开始猜。 如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。...二分查找的工作方法就是如此。
二分查找,也被称为折半查找,是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分成两半,然后比较中间元素与目标值,根据比较结果决定是在左半部分还是右半部分继续查找。这个过程会一直重复,直到...
Java数据结构之二分查找法BinarySearch实例 Java数据结构之二分查找法BinarySearch是一种高效的查找算法,通过将数组分割成两部分,并不断地缩小查找范围,直到找到目标元素或确定元素不存在。下面将详细介绍Java...
二分查找Binary Search的思想: 以有序表表示静态查找表时,查找函数可以用二分查找来实现。 二分查找(Binary Search)的查找过程是:先确定待查记录所在的区间,然后逐步缩小区间直到找到或找不到该记录为止。 1二...
**二分查找(Binary Search)**是一种在有序数组中寻找特定元素的搜索算法。它的基本思想是通过比较中间元素与目标值,不断缩小搜索范围,直到找到目标元素或者确定其不存在。二分查找的时间复杂度为O(log n),在大...
在上述代码中,`binarySearch`方法接收一个已排序的整数数组和一个目标值,然后执行二分查找。`main`方法创建了一个有序数组并调用`binarySearch`方法,打印出目标值在数组中的索引或未找到的提示。 三、二分查找的...
在这个例子中,我们首先定义了二分查找函数`binarySearch`,然后在`main`函数中创建了一个已排序的数组,并调用`binarySearch`函数寻找目标值10。如果找到,输出其索引;如果没有找到,输出“元素不在数组中”。 二...
s[middle] 关键字小于中值 继续二分查找 并将上限改为middle BinarySearch s x low middle 1 ; else 关键字大于中值 继续二分查找 并将下限改为middle BinarySearch s x middle + 1 high ;">if high < low ...