//递归
public static int binarySearch(int array[],int val,int start,int end){
int mid = (end-start)/2+start;
if(val == array[mid]){
return mid;
}
if(start>=end){
return -1;
}
else if(val < array[mid]){
return binarySearch(array,val,start,mid-1);
}else if(val > array[mid]){
return binarySearch(array,val,mid+1,end);
}
return -1;
}
//循环
public static int binarySearch(int array[],int val){
int start = 0;
int end = array.length-1;
int mid = array.length/2;
if(val == array[mid]){
return mid;
}
while(start<=end){
mid = (end-start)/2+start;
if(val < array[mid]){
end = mid-1;
}else if(val > array[mid]){
start = mid+1;
}else{
return mid;
}
}
return -1;
}
分享到:
相关推荐
这里我们将讨论如何利用二分查找法,即折半查找法,来实现这一过程。 首先,我们需要理解PT100的基本工作原理。PT100的全称是铂100,意味着当温度为0℃时,它的阻值为100欧姆。随着温度升高,电阻值也会线性增加。...
在有序表(12,18,30,43,56,78,82,95)中,二分查找43和56元素的查找长度分别是2和1,因为43位于43和56之间,而56是中间元素。 二分查找对应的判定树是一种特殊的数据结构,它同时是一棵平衡二叉搜索树和一棵满二叉树...
在函数内部,我们首先遍历整个数组,对每个元素执行2分查找和插入操作。以下是一个简单的C语言实现框架: ```c #include void binary_search(int arr[], int key, int low, int high, int *insertPos) { // 实现...
在.NET中,可以结合LINQ的OrderBy或OrderByDescending方法对数据进行排序,然后再执行2分查找。 总的来说,2分法是.NET开发中处理有序数据的一种强大工具,能够有效地提升搜索效率,尤其是在处理大量数据时。理解并...
二分查找算法 二分查找算法是一种高效的查找算法,适用于已经排好序的数组或链表中查找特定的元素。该算法的时间复杂度为O(log n),远远优于顺序查找算法的O(n)。 二分查找算法的基本思想是将数组或链表分成两个...
二分查找,也被称为折半查找,是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分成两半,然后比较中间元素与目标值,根据比较结果决定是在左半部分还是右半部分继续查找。这个过程会一直重复,直到...
特别是当数据量庞大时,二分查找的时间复杂度仅为 O(log2 n),与线性查找的 O(n)相比,优势十分突出。 实现二分查找算法需要遵守一定的步骤。首先,算法会在数组中找到中间位置的索引 m,计算方式为 m = (low + ...
这里我们将深入探讨两种常见的查找算法:二分查找和顺序查找。 **一、顺序查找** 顺序查找是最基础的查找算法之一。它的工作原理是从数据集(如数组或列表)的第一个元素开始,逐个比较目标值与当前元素,直到找到...
二分查找,也称为折半查找,是一种在有序数组中搜索特定元素的高效算法。它主要利用了数组的线性特性,通过不断缩小搜索范围来快速定位目标值。在VB(Visual Basic)中,实现二分查找需要理解基本的逻辑控制和数组...
Java 二分查找实现 Java 二分查找是搜索有序数组中某个元素的最常用算法之一。它的实现原理是将数组分成两个部分,然后在其中一个部分继续进行搜索,直到找到目标元素或确定目标元素不存在。下面将详细介绍 Java 二...
二分查找,也被称为折半查找,是一种在有序数组中高效地查找特定元素的搜索算法。这个算法的主要思想是利用数组的有序性,通过不断缩小查找范围,直到找到目标值或者确定目标值不存在为止。本篇文章将深入探讨二分...
简单地实现了二分查找的可视化。界面很简单就包括两个部分:界面左侧是可视化查找部分,右侧是二分查找的代码。 程序的关键点主要有两点: 1. 如何在页面上表示出查找程序的运行过程。 2. 如何将排序程序的运行...
### C++ 二分查找法详解 在计算机科学领域,数据结构与算法是核心课程之一,其中二分查找法(Binary Search)是一种高效的查找技术,尤其适用于有序数组或列表的搜索场景。本文将深入探讨C++中实现二分查找法的具体...
2. **递归版二分查找**:通过递归函数实现,直观且易于理解。 3. **迭代版二分查找**:通过while循环和条件判断逐步缩小搜索范围。 4. **二分查找插入位置**:用于在有序数组中找到新元素的合适插入位置,保持数组...
二分查找是一种在有序数组中查找特定元素位置的算法,它利用数组元素排序的特性,通过比较数组中间元素与目标值的大小,将查找区间缩半来加快查找速度。该算法适用于有序集合,能够将时间复杂度从线性查找的O(n)降低...
2. **AS3编程基础**:展示如何使用AS3编写代码来实现二分查找,包括数据结构(如数组)、条件判断语句(if...else)、循环(while或for循环)等基础知识。 3. **人机交互设计**:在Flash中添加事件监听器,使得用户...
二分查找算法,也称为折半查找,是计算机科学中一种高效的搜索算法,尤其适用于已排序的数据集合。这种算法的基本思想是将数据集分为两半,每次比较中间元素与目标值,根据比较结果缩小搜索范围,直至找到目标值或者...
2. 二分查找插入位置:除了查找特定值,还可以用于找到一个新元素的合适插入位置,保持数组有序。 3. 二分查找在平衡二叉搜索树中:二分查找的概念也被应用于二叉搜索树,特别是自平衡树如AVL树和红黑树。 六、实际...
一、实验目的: 熟悉各种查找算法及其复杂性,能够根据实际情况选择合适的存储结构。 二、实验要求: 1、掌握查找的基本方法。 2、提交实验报告,报告...编程分别对有序顺序表的顺序查找,二分查找算法进行实现。