`

Java 搜索算法(顺序搜索,二叉搜索)

阅读更多
public class sequenceQuery {
	/* 对于无序表的搜索 顺序搜索*/
	public int seqSearch(int[] datalist, int target) {
		for (int i = 0; i < datalist.length; i++) {
			if (datalist[i] == target)
				return i;
		}
		return -1;
	}

	/* 二叉搜索,对于有序表 */
	public int binarySearch(int[] datalist, int target) {
		int mid = 0;
		int first = 0;
		int last = datalist.length - 1;

		while (first <= last) {
			mid = (first + last) / 2;
			if (target == datalist[mid])
				return mid;
			else {
				if (target > datalist[mid])
					first = mid + 1;
				else
					last = mid - 1;
			}
		}
		return -1;
	}

	public static void main(String[] args) {
		int datalist1[] = { 23, 566, 89, 0, 2, 7, 90, 34, 12, 744, 3257 };
		int datalist2[] = { 23, 28, 89, 100, 200, 778, 902, 1234, 1724, 7442,32257 };
		sequenceQuery s = new sequenceQuery();
		System.out.println(s.seqSearch(datalist1, 90));
		System.out.println(s.binarySearch(datalist2, 902));
	}
}

 

分享到:
评论

相关推荐

    Java经典算法教程:二叉搜索树插入操作

    了解并掌握二叉搜索树的插入操作对于学习算法和数据结构至关重要。这个Java实现的插入方法简洁明了,易于理解。通过递归方式,我们可以高效地将新元素插入到合适的位置,保持二叉搜索树的有序性。这个教程提供的代码...

    算法笔记,恢复二叉搜索树

    【恢复二叉搜索树】是算法领域中的一种问题,它涉及到对二叉搜索树的性质的理解和应用。二叉搜索树是一种特殊的二叉树,其每个节点的左子树上所有节点的值都小于该节点的值,而右子树上所有节点的值都大于该节点的值...

    java二叉排序

    当我们谈论“Java二叉排序”时,我们通常指的是使用Java实现的二叉搜索树(Binary Search Tree, BST)算法,这是一种特殊类型的二叉树,每个节点的值都大于其左子树中的任何节点,同时小于其右子树中的任何节点。...

    二叉搜索树 转为 双向链表,

    二叉搜索树(Binary Search Tree, BST)是一种特殊的二叉树结构,其每个节点的值都大于左子树中所有节点的值,...这个转换过程对于理解和实现二叉搜索树到链表的转换具有重要意义,有助于提升对数据结构和算法的理解。

    java 二叉排序树与平衡二叉树的实现

    2. **顺序表存储结构**:对于较小的数据集,可以考虑使用数组来实现二叉排序树,这样可以直接通过索引访问元素,但插入和删除操作可能需要更多的移动操作。 3. **插入操作**:在二叉排序树中插入一个新节点,需要...

    java 各类算法实现代码

    Java算法实现代码主要涵盖了许多计算机科学中的核心算法,这些算法是编程基础,也是解决复杂问题的关键工具。在Java中实现这些算法,可以帮助开发者更好地理解和应用它们。以下将详细阐述一些常见的Java算法及其重要...

    平衡二叉排序树的算法实现

    平衡二叉排序树的主要目标是解决普通二叉搜索树在最坏情况下的性能问题,当树严重倾斜时,其操作效率会降低至线性时间复杂度。 在C和C++中实现平衡二叉排序树,通常涉及以下几个核心概念: 1. **AVL树**:AVL树是...

    java算法大全源码包100多种

    Java算法大全源码包是一个非常宝贵的资源,包含了各种经典的算法实现,总计超过100种。这个源码包是学习和提升Java编程能力,特别是算法理解与应用的绝佳材料。以下将详细介绍其中可能涵盖的一些重要算法及其应用: ...

    Java数据结构和算法

    Java数据结构和算法是计算机科学中的核心概念,对于任何Java开发者来说,理解并熟练掌握它们至关重要。数据结构是存储和组织数据的方式,而算法则是解决问题或执行任务的精确步骤。在Java编程中,数据结构和算法是...

    Java面试常用数据结构与算法

    常见的二叉树类型有二叉搜索树、平衡树(AVL、红黑树)。面试中可能会讨论二叉树的遍历(前序、中序、后序)、查找、插入、删除、平衡化等。 8. **常用算法**:除了上述数据结构,面试还会涉及排序、查找、图论、...

    二叉搜索树迭代器(java代码).docx

    二叉搜索树迭代器可用于多种场景,例如数据库查询、排序算法、数据结构实现等,尤其是在处理大量有序数据时非常有用。通过这种方式实现的迭代器不仅能够高效地访问二叉搜索树中的每一个节点,而且还能保证访问顺序的...

    java 几种查找算法

    根据给定的文件信息,我们可以总结出几种在Java中实现的查找算法,这些算法是数据结构和算法领域的重要组成部分,广泛应用于各种计算机科学场景中。下面将详细解释这些算法及其在Java中的实现。 ### 顺序查找...

    java多种算法大全源代码

    - **二叉搜索树、AVL树、红黑树**:自平衡二叉查找树,保持查找效率。 9. **递归**: - **阶乘计算**、**斐波那契数列**等都是典型的递归问题。 这些源代码可以作为学习和理解算法的宝贵资源。通过阅读和实践...

    java-leetcode题解之第173题二叉搜索树迭代器.zip

    在本压缩包中,我们关注的是Java编程语言与LeetCode平台上的第173题——“二叉搜索树迭代器”...理解并实现这个迭代器有助于加深对二叉搜索树和迭代器模式的理解,对于提升Java编程技能和解决算法问题的能力大有裨益。

    Java算法集锦,所有排序算法

    "Java算法集锦"这个资源集合了多种排序算法的实现,旨在帮助开发者深入理解和运用这些经典算法。下面将详细介绍其中的一些关键算法及其特点。 1. **冒泡排序**(Bubble Sort):冒泡排序是最基础的排序算法之一,...

    java编程实现优先队列的二叉堆代码分享

    Java 编程实现优先队列的二叉堆代码分享是指使用 Java 语言实现优先队列的二叉堆算法,以下是该实现的详细知识点: 1. 二叉堆(Binary Heap)的概念:二叉堆是一种特殊的二叉树,具有以下特性:每个节点的值都小于...

    Java常用算法手册源码

    - **树(Tree)**:用于表示层级关系,如二叉搜索树、AVL树、红黑树等。 - **图(Graph)**:用于表示对象之间的关系,如邻接矩阵、邻接表等。 - **哈希表(Hash Table)**:提供快速的查找、插入和删除操作。 7...

    JAVA数据算法及答案,菜鸟级的!

    二叉搜索树、平衡树(如AVL树和红黑树)等都是其变种,用于高效查找和排序。 5. 哈希表:哈希表,如Java中的HashMap,通过散列函数实现快速的插入、查找和删除操作,通常具有O(1)的时间复杂度。 接下来,让我们...

    Java 的 LinkedList 设计.zip

    LinkedList 设计java数据结构与算法系列文章目录(持续更新)java数据结构与算法之顺序表与链表设计与实现分析java数据结构与算法之双链表设计与实现java数据结构与算法之改进顺序表与双链表类似ArrayList和LinkedList...

    Java实现 LeetCode 530 二叉搜索树的最小绝对差(遍历树)

    这是一道与数据结构和算法相关的编程问题,涉及到二叉搜索树(BST)以及树的遍历。二叉搜索树是一种特殊的二叉树,其每个节点的左子树上所有节点的值都小于该节点的值,右子树上所有节点的值都大于该节点的值,且...

Global site tag (gtag.js) - Google Analytics