`
464772913
  • 浏览: 25371 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

二分法查找、递归

 
阅读更多

需求:查找数组中某个元素的下标

 

实现方法:二分法查找(折半查找,每次把表分成两半,因为已经排好序,所以每次只需要和中间的数比较,就能确定要查找的值在哪一半,然后不断分成两半,直到匹配,如果没有找到,则表示没有该元素)

 

 

public static int find(int x) {
		int[] intsz = new int[] { 10, 22, 36, 47, 58, 69, 79, 83 };
		int min = 0;
		int max = intsz.length - 1;

		while (min <= max) {
			int y = (min + max) / 2;
			int value = intsz[y];
			if (x > value) {
				min = y + 1;
			} else if (x < value) {
				max = y - 1;
			} else {
				return y;
			}
		}
		return -1;
	}
public static void main(String args[]) {
     System.out.println("元素下标为:"+find(79));
}

 

需求:一个目录下有文件、文件夹,文件夹下又有子目录,统计该目录中所有的文件目录

 

实现方法:递归(程序调用自身的编程技巧称为递归)

 

public static void main(String args[]) {
		System.out.println(digui("D:\\test"));
	}

	static int x = 0;
	static int y = 0;

	public static int digui(String path) {
		File file = new File(path);

		if (!file.isDirectory()) {
			System.out.println("不是目录");
		} else if (file.isDirectory()) {

			String[] filelist = file.list();
			for (int i = 0; i < filelist.length; i++) {
				File delfile = new File(path + "\\" + filelist[i]);
				if (delfile.isDirectory()) {
					x++;
					System.out.println(path + "\\" + filelist[i]);

					digui(path + "\\" + filelist[i]);
				}else if(!delfile.isDirectory()){
					y++;
					System.out.println(path + "\\" + filelist[i]);
				}
				
			}
		}

		return y;
	}
分享到:
评论

相关推荐

    二分法查找递归与非递归

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

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

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

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

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

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

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

    c语言 二分法查找

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

    易语言有序二分法查找

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

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

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

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

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

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

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

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

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

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

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

    顺序二分法查找

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

    二分法查找

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

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

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

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

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

    C# 简单的冒泡、快速排序及二分法查找.zip

    本资源“C# 简单的冒泡、快速排序及二分法查找.zip”显然关注的是数据排序和查找算法的实现,这些都是计算机科学和编程的基础知识。 首先,我们来探讨冒泡排序(Bubble Sort)。这是一种简单的交换排序方法,适用于...

    Java常用排序算法&程序员必须掌握的8大排序算法+二分法查找

    本资料包聚焦于"Java常用排序算法"和"程序员必须掌握的8大排序算法",并深入探讨了"二分法查找"这一高效搜索技术。 首先,我们来看八大排序算法。这些算法包括: 1. **冒泡排序**:最简单的排序方法,通过不断交换...

Global site tag (gtag.js) - Google Analytics