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

递归-二分法查找

阅读更多

二分法查找是建立在针对有序数组的查找,这里使用的是递归的算法,算法本身比较简单,这里就不再叙述。

二分法查找的时间效率为O(log n)

代码如下:

class BinarySearch {
	public static void main(String[] args) {
		int[] a = {2,3,4,5,6,7,8,9,10,13,17,18,24,56,78};
		System.out.println(search(a,5));
	}

	private static int search(int[] a, int key) {
		return search(a,0,a.length,key);
	}

	private static int search(int[] a, int from, int to, int key) {
		if(from > to) return -1;
		int middle = (from + to)/2;
		if (a[middle] == key) return middle;
		if (a[middle] > key) return search(a,from,middle-1,key);
		else return search(a,middle+1,to,key);
	}
}
 
2
3
分享到:
评论

相关推荐

    计算方法上机-二分法-C++

    二分法,也称为折半搜索或二分搜索,是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将查找区间不断减半,直到找到目标元素或者确定不存在为止。这种算法尤其适用于大规模数据集,因为它的时间复杂度为O...

    c语言二分法递归求解函数根

    二分法,也称为折半搜索,是一种在有序数组中查找特定元素的搜索算法。它通过不断将查找区间减半,快速定位目标值。在数值分析领域,二分法也被用于求解方程,特别是连续函数的零点。在本案例中,我们将探讨如何用...

    数据结构快速排序二分法查找

    "数据结构快速排序二分法查找" 快速排序和二分法查找是数据结构中两个非常重要的概念,它们都是解决实际问题的重要工具。在本文中,我们将详细介绍快速排序和二分法查找的原理、实现和应用。 快速排序 快速排序...

    算法-分治- 二分法(包含源程序).rar

    **二分法(Binary Search)**,又称为折半搜索或二分查找,是一种在有序数组中查找特定元素的搜索算法。它的基本思想是利用分治策略,将问题规模不断减半,直到找到目标值或者确定目标不存在。二分法在计算机科学中...

    c语言 二分法查找

    1. **递归实现**:上述代码采用了递归的方式实现了二分法查找。`search` 函数接收四个参数:数组 `a`、查找范围的起始索引 `from`、结束索引 `to` 和目标值 `key`。 2. **终止条件**:当 `to 时,表示当前查找范围...

    二分法查找递归与非递归

    使用二分法搜索的技术去搜索一个数组中元素,其中包括递归方法和非递归方法。欢迎大家评阅后给我一点好的建议,谢谢哦。

    李睿--二分法与统计问题1

    总的来说,二分法和统计问题的解决涉及到对数据结构的深入理解和巧妙运用,通过线段树、二叉排序树等数据结构,结合二分查找的策略,可以高效地处理大规模数据的统计需求。在编程竞赛或实际项目中,掌握这些方法有助...

    易语言有序二分法查找

    **易语言有序二分法查找**是一种在已排序的数据序列中快速查找特定元素的高效算法。易语言,作为中国本土的编程语言,以其简洁的语句和易学性深受初学者喜爱。在这个主题中,我们将深入探讨有序二分法查找的原理、...

    python二分法查找算法实现方法【递归与非递归】

    递归版本的二分查找需要定义递归结束的基准条件,当数组为空时返回False,表示查找失败;如果数组只有一个元素并且与目标值相等时返回True,表示查找成功;否则,将数组分为两部分,根据中间元素与目标值的比较结果...

    分别用递归和非递归方法实现二分查找算法 的完整程序

    分别用递归和非递归方法实现二分查找算法 的完整程序,indexof()返回的是循环实现的二分法查找,getindex()实现的是递归算法实现的二分法查找。

    C语言实现的二分法快速查找|二分法排序|二分法查找C#

    2. 使用循环或递归实现查找逻辑,其中包含计算中间位置、比较和调整边界等操作。 3. 根据查找结果输出相应的信息。 C#中还可以利用内置的`.FindIndex()`方法或`Array.BinarySearch()`函数来实现二分查找,这些方法...

    python二分查找算法的递归实现方法

    在Python中,二分查找可以采用循环或递归的方式来实现。以下是基于递归的二分查找算法的实现方法: 首先,我们需要理解递归的基本概念。递归是指一个函数在其定义中调用自身的过程。在二分查找中,我们将问题分解为...

    二分法数据查找C语言实现

    ### 二分法数据查找C语言实现 #### 知识点概述 二分查找(Binary Search),也称为折半查找,是一种在有序数组中查找某一特定元素的搜索算法。二分查找采用分而治之的策略,通过将查找区间分成前后两部分来减少...

    二分法查找(4种版本) C++

    在这个C++实现中,我们将探讨四种不同的二分法查找版本:递归健忘版、非递归健忘版、递归非健忘版以及非递归非健忘版。 1. **递归健忘版**: 这种版本通常不考虑已查找过的区间,而是每次都从整个数组开始。递归...

    二分法查找

    二分法查找,又称折半查找,是一种在有序数组中搜索特定元素的高效算法。它充分利用了数组的索引特性,将查找范围不断减半,从而显著降低了查找时间。二分法查找通常在数据结构与算法的学习中占有重要地位,是理解和...

    顺序二分法查找

    顺序查找和二分法查找是两种常见的数据查找技术,在计算机科学和编程中有着广泛的应用。它们主要用于在已排序或未排序的数据集合中寻找特定的元素。下面将详细讲解这两种查找方法,以及与之相关的二叉搜索树的概念。...

    冒泡排序、快速排序和二分法查找的分析 Java

    ### 冒泡排序、快速排序和二分法查找的分析:Java实现 #### 冒泡排序(Bubble Sort) 冒泡排序是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列...

    二分搜索的递归和非递归实现

    二分搜索,也被称为折半查找,是一种在有序数组中查找特定元素的高效算法。它主要利用了分治策略,将问题规模不断减半,从而快速定位目标值。本篇文章将详细探讨二分搜索的递归和非递归实现。 首先,我们来看递归...

Global site tag (gtag.js) - Google Analytics