`
haoran_10
  • 浏览: 443241 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

查找算法(1)--二分查找

阅读更多

简介:  二分查找算法是针对有序数组进行查找某个元素的算法,时间复杂度为Ο(logn) 

 
一、主要步骤
有序数组arr(假设从小到大),待查找元素x
(1)、直接从中间一个元素开始找,mid = (0+arr.length)/2
(2)、如果arr[mid]大于x,说明目标索引在mid索引的左半边,把左边当作一个完整的数组继续查找
(3)、如果arr[mid]小于x,说明目标索引在mid索引的右半边,把右边当作一个完整的数组继续查找
(4)、如果arr[mid]等于x,那就找到了
 
二、代码实现
public int search(int[] arr,int x) throws Exception{
	int start = 0;
	int end = arr.length-1;
	
	while(start<=end){
		int mid = (start+end)/2;
		
		if(arr[mid]>x){
			end = mid-1;
		}else if(arr[mid] == x){
			return mid;
		}else if(arr[mid]<x){
			start = mid+1;
		}
	}
	
	throw new Exception("not found"+x);
}
 
1
0
分享到:
评论

相关推荐

    二分查找算法实现-修正1

    二分查找算法实现-修正1 二分查找算法是计算机科学中一种常用的查找算法,通过将要查找的数组分成两半,并不断缩小查找范围来找到目标元素。该算法的实现可以在多种编程语言中使用,包括C++、Java、C#等。 在给定...

    二分查找算法

    二分查找算法的基本思想是将数组或链表分成两个部分,然后确定查找的元素是否在某一部分中,如果是,则继续对该部分进行二分查找,直到找到该元素或确定该元素不存在于数组或链表中。 在程序中,二分查找算法的实现...

    实验十二------顺序和二分查找算法

    二分查找算法的实现方法可以使用递归结构,例如使用函数调用自身来实现二分查找。 二分查找算法的时间复杂度是O(logn),其中n是数组的长度。因为二分查找算法每次都将数组的长度减半,因此它的时间复杂度远远小于...

    《数据结构与算法》-李春葆 实验报告-典型查找算法实践-二分查找、分块索引查找

    在本实验报告中,我们关注的是两种常见的查找算法——二分查找和分块索引查找,它们都是在数据结构和算法领域中极为重要的概念。这两种查找算法主要应用于处理有序序列,能够有效地提高查找效率。 首先,二分查找是...

    数据查找算法之-二分查找

    本代码是利用java语言实现基本数据查询功能,实现算法为二分查找法

    查找算法--二分查找

    数据结构用C++的实现,蓝桥杯,ACM,算法基础,C++入门

    算法分析与设计-实验二 二分查找实验报告.docx

    首先,我们需要理解二分查找的适用条件:输入数据必须是有序的。对于无序数据,二分查找无法发挥其优势。在本实验中,为了满足这一条件,我们先对数据进行排序。实验中使用Java的`Arrays.sort()`函数对随机生成的...

    二分查找算法PPT课件

    二分查找算法,二分查找算法课件,二分查找算法PPT

    查找算法集(顺序查找、二分查找、插值查找、动态查找)

    以下是四种常见的查找算法:顺序查找、二分查找、插值查找和动态查找。 顺序查找 顺序查找是一种最简单的查找算法,它的实现方式是从数组或链表的第一个元素开始,逐个比较元素直到找到目标元素或达到数组或链表的...

    算法--二分查找

    二分查找是一种高效的查找算法,其基本思想是在已排序的数组中查找特定元素。通过不断将查找区间减半来缩小搜索范围,从而大大提高查找效率。这种方法特别适用于大型有序数据集。 #### 二、算法原理 在二分查找算法...

    二分查找算法流程图流程图举例

    二分查找法也称为折半查找法,它是在有序数组中进行查找的一种高效方法。这种方法利用了数组有序的特点,通过不断将查找区间对半分割来减少搜索范围,从而显著提高查找效率。二分查找的时间复杂度为O(logn),这使得...

    C#-使用C#实现的二分查找算法-算法实现.zip

    二分查找算法是一种在有序...这个C#实现的二分查找算法示例将帮助初学者理解二分查找的工作原理,并提供了一个可复用的代码模板。通过阅读和分析源代码,你可以更深入地了解如何在实际项目中运用这种高效的搜索算法。

    查找算法-二分查找详解

    总的来说,二分查找是一种非常高效的查找算法,适用于大量有序数据的处理。掌握并灵活运用二分查找,可以有效提升程序的性能,尤其是在处理大数据时。同时,了解其变种和扩展,有助于解决更复杂的问题。

    Java 二分查找 算法

    Java 中实现二分查找的基本步骤如下: 1. 首先,设定查找区间的左右边界,通常为数组的第一个元素索引(0)和最后一个元素索引(数组长度减一)。 2. 计算中间索引,即 (左边界 + 右边界) / 2,确保结果为整数。 3....

    winform 二分查找算法源码

    相比于线性查找(时间复杂度O(n)),二分查找在大规模数据中有着显著的效率优势。 在winform环境下,你可以创建一个简单的用户界面,例如包含一个文本框让用户输入目标值,一个按钮触发查找操作,以及一个文本区域...

    查找算法:二分查找、顺序查找

    这里我们将深入探讨两种常见的查找算法:二分查找和顺序查找。 **一、顺序查找** 顺序查找是最基础的查找算法之一。它的工作原理是从数据集(如数组或列表)的第一个元素开始,逐个比较目标值与当前元素,直到找到...

Global site tag (gtag.js) - Google Analytics