`
coolszy
  • 浏览: 1408481 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

搜索算法----线性搜索、二叉搜索

阅读更多
/**
 * 线性搜索
 */
package com.szy.structure.search;

import java.util.Scanner;

public class SequentialSearch
{
	public static void main(String[] args)
	{
		int number[]={10,-2,30,22,1,2,5,4,3,20};
		Scanner scanner=new Scanner(System.in);
		System.out.println("Input the number you want to search:");
		int input=scanner.nextInt();  //不考虑输入的内容是否合法
		//线性查找
		for (int i = 0; i < number.length; i++)
		{
			if(number[i]==input)
			{
				System.out.println(input+" was found at the position of "+(i+1));
				break;
			}
		}
		System.out.println("The number you input wasn't in the array");
	}
}

 

 

/**
 * 二叉搜索
 */
package com.szy.structure.search;

import java.util.Scanner;

public class BinarySearch
{
	public static void main(String[] args)
	{
		//假设数组已经排好序,没排序好的使用排序算法排序
		int number[]={1,2,4,6,8,32,44,67,89,100,110};
		Scanner scanner=new Scanner(System.in);
		System.out.println("Input the number you want to search:");
		int input=scanner.nextInt();  //不考虑输入的内容是否合法
		
		int lowbound=0;
		int upperbound=number.length-1;
		int mid=(lowbound+upperbound)/2;
		while((input!=number[mid]&&(lowbound<=upperbound)))
		{
			if (input>number[mid])
			{
				lowbound=mid+1;
			}
			else
			{
				upperbound=mid-1;
			}
			mid=(lowbound+upperbound)/2;
		}
		if (input==number[mid])
		{
			System.out.println(input+" was found at the position of "+(mid+1));
		}
		else
		{
			System.out.println("The number you input wasn't in the array");
		}
	}
}

 

 

分享到:
评论

相关推荐

    JavaScript算法源代码(例如:二叉搜索树、笛卡尔乘积、线性搜索、存储桶排序、DFS、 Kruskal算法、欧几里,等等)

    JavaScript算法源代码(例如:二叉搜索树、笛卡尔乘积、线性搜索、存储桶排序、DFS、 Kruskal算法、欧几里,等等) 链表、双链表、队列、Stack、哈希表、堆 - 最大和最小堆、优先队列、Trie、树、二叉搜索树、AVL树...

    算法-第4版-完整版

    3.4.3 基于线性探测法的散列表 300 3.4.4 调整数组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类...

    数据结构-查找算法-C语言

    (2)掌握二叉排序树、AVL树的查找、插入、删除、建立算法的思想及程序实现方法。 (3)掌握散列存储结构的思想,能选择合适散列函数,实现不同冲突处理方法的散列表的查找、建立。 (4)能运用线性表的查找方法...

    二叉查找树算法.zip

    常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据,如最短路径算法(如Dijkstra算法、Floyd-Warshall算法)、最小生成树算法(如Prim算法、Kruskal算法)等。 动态规划:动态规划是...

    数据结构、算法与应用:C++语言描述(原书第2版)第二部分

    14.4 带有相同关键字元素的二叉搜索树 14.5 索引二叉搜索树 14.6 应用 14.6.1 直方图 14.6.2 箱子装载问题的最优匹配法 14.6.3 交叉分布 第15章 平衡搜索树 15.1 AVL树 15.1.1 定义 15.1.2 AVL树的高度 15.1.3 AVL树...

    【JavaScript源代码】如何利用JavaScript实现二叉搜索树.docx

    这通常是引入的第一个具有非线性插入算法的数据结构。二叉搜索树类似于双链表,每个节点包含一些数据,以及两个指向其他节点的指针;它们在这些节点彼此相关联的方式上有所不同。二叉搜索树节点的指针通常被称为“左...

    全面的算法代码库

    普通的二叉搜索树 Binary-Search-Tree 广度优先搜索 Breadth-First-Search 冒泡排序 Bubble-Sort 桶排序 Bucket-Sort 组合数的递推求解 Combination(Recursion) 枚举组合 Combination 基本的复数类 Complex-...

    TheAlgorithms:基于Java 8的算法实现

    :thinking_face: 算法 基于Java 8实现的代码片段集合,可以在... :lion:搜索算法-搜索 与搜索相关的数据结构:二叉查找树,平衡查找树,散列表 线性查找-LinearSearch 二分查找-BinarySearch 广度优先搜索 深度优先搜索

    算法导论-麻省理工(中文)

    《算法导论》原书名——《Introduction to Algorithms》,是一本十分经典的计算机算法书籍,与高德纳(Donald E.Knuth)的《计算机程序设计艺术》(《The Art Of Computer Programming》)相媲美。 《算法导论》由...

    二叉堆.zip

    常见的搜索算法包括线性搜索、二分搜索等。 图算法:图算法用于处理图结构的数据,如最短路径算法(如Dijkstra算法、Floyd-Warshall算法)、最小生成树算法(如Prim算法、Kruskal算法)等。 动态规划:动态规划是...

    数据结构算法与应用-C++语言描述

    11.1.8 二叉搜索树的高度 327 11.2 AVL树 328 11.2.1 基本概念 328 11.2.2 AVL树的高度 328 11.2.3 AVL树的描述 329 11.2.4 AVL搜索树的搜索 329 11.2.5 AVL搜索树的插入 329 11.2.6 AVL搜索树的删除 332 11.3 红-...

    算法导论-第三版(中文).rar

    第十二章 二叉查找树(Binary Search Trees) 第十三章 红-黑树(Red-Black Trees) 第十四章 扩充的数据结构(Augmenting Data Structures) 第四部分(Part IV) 高级的设计与分析技术(Advanced Design and ...

    算法设计与分析(王晓东) 算法设计与分析电子教案

    算法设计与分析课后答案 520页 pdf...3.11 最优二叉搜索树 3.12 动态规划加速原理 习题3 第4章 贪心算法 第5章 回溯法 第6章 分支限界法 第7章 随机化算法 第8章 线性规划与网络流 第9章 NP完全性理论与近似算法

    算法导论中文版

     12.4 随机构建二叉搜索树  思考题  本章注记 第13章 红黑树  13.1 红黑树的性质  13.2 旋转  13.3 插入  13.4 删除  思考题  本章注记 第14章 数据结构的扩张  14.1 动态顺序统计  14.2 如何...

    算法 第4版-谢路云译-带完整书签

    3.4.3 基于线性探测法的散列表 300 3.4.4 调整教组大小 304 3.4.5 内存使用 306 3.5 应用 312 3.5.1 我应该使用符号表的哪种实现 312 3.5.2 集合的API 313 3.5.3 字典类用例 315 3.5.4 索引类用例 ...

    数据结构与算法常用英语词汇[整理版].doc

    常见的搜索算法包括线性搜索、折半搜索、二叉搜索树搜索等。 * 线性搜索(Linear Search):是一种简单的搜索算法,通过顺序查找实现搜索。 * 折半搜索(Binary Search):是一种高效的搜索算法,通过折半查找实现...

    数据结构与算法分析第二版 ---C语言描述(附加答案)

    散列5.1 一般想法5.2 散列函数5.3 分离链接法5.4 开放定址法5.4.1 线性探测法5.4.2 平方探测法5.4.3 双散列5.5 再散列5.6 可扩散列总结练习参考文献第6章 优先队列(堆)6.1 模型6.2 一些简单的实现6.3 二叉堆6.3.1 ...

    实验2 二分检索的递归与迭代算法设计&#40;报告&#41;.doc

    在树结构中,我们可以使用二叉搜索树(Binary Search Tree)来实现二分检索算法。二叉搜索树是一种特殊的树结构,其中每个结点的值都小于或等于其右子树中的所有结点的值,同时也大于或等于其左子树中的所有结点的值...

    数据结构、算法与应用--C++语言描述

    11.1.8 二叉搜索树的高度 327 11.2 AVL树 328 11.2.1 基本概念 328 11.2.2 AVL树的高度 328 11.2.3 AVL树的描述 329 11.2.4 AVL搜索树的搜索 329 11.2.5 AVL搜索树的插入 329 11.2.6 AVL搜索树的删除 332 11.3 红-...

    二叉排序树_非线性结构_数据结构与算法

    关于数据结构中二叉排序树算法实现,使用C语言代码编程。

Global site tag (gtag.js) - Google Analytics