`
danielhjd
  • 浏览: 246231 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java程序中“两分法”查找数据

    博客分类:
  • Java
阅读更多
package Daniel;

import java.util.Scanner;

public class DoSearch {

	public static int bisSearch(int target){
		int[] a={2,3,5,7,12,15,18,36,45,67,74,87,88};
		int btm=0;
		int top=a.length;
		int mid=(btm+top)/2;
		while(a[mid]!=target){
			int old_mid = mid;
			if(a[mid]>target){
				top=mid;
			}else{
				btm=mid;
			}
			mid=(btm+top)/2;
			int new_mid=mid;
			
			if(old_mid==new_mid){
				return -1;
			}
		}
		
		return mid;
	}
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入你想查找的数: ");
		int a=sc.nextInt();
		int index= bisSearch(a);
		System.out.println(index);
		if (index==-1){
			System.out.println("序列中没有您要查找的数,请确认输入正确。");
		}else{
			System.out.println("所查找的数所在位置为:第"+(index+1)+"位");
		}
	}

}

 

这里关键是while(){}循环语句的使用:

while(a[mid]!=target){
			int old_mid = mid;
			if(a[mid]>target){
				top=mid;
			}else{
				btm=mid;
			}
			mid=(btm+top)/2;
			int new_mid=mid;
			
			if(old_mid==new_mid){
				return -1;
			}

 

这里 mid的值 不断的改变 所以a[mid]不断的变化...来促使while(){}的循环和终止... index是一串有序的数值..

 

 

分享到:
评论

相关推荐

    java二分搜索法程序,分行显示

    综上所述,这个Java程序利用了二分搜索法在有序数据中快速定位,同时进行了文字处理,可能是在J2ME环境下运行,适用于有限资源的设备。具体实现可能包括数组操作、字符串分割和显示逻辑。对于开发者来说,理解和掌握...

    java 快速排序 折半查找的界面实现 (递归与分治法)

    快速排序和折半查找是两种在计算机科学中广泛使用的算法,尤其在数据处理和搜索操作中扮演着重要角色。在Java编程中,这两种算法都可以通过递归和分治策略进行实现,以提高效率和可读性。下面我们将深入探讨这两个...

    数据结构和算法 java

    在Java中实现数据结构和算法,能够帮助开发者更高效地解决问题,优化程序性能。 数据结构是一种组织和存储数据的方式,它能方便数据的插入、删除和查找操作。常见的数据结构包括数组、链表、栈、队列、哈希表、树...

    java数据结构程序源代码

    Java数据结构是计算机科学中的重要概念,它涉及如何在内存中高效地组织和管理数据,以便于快速访问和操作。本资源提供了Java数据结构第四版的课程源代码,旨在帮助学习者深入理解并实践这些概念。以下是根据标题、...

    数据结构与算法代码详解JAVA版

    在Java中,我们可以使用各种算法来解决实际问题,例如排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序等)、查找算法(顺序查找、二分查找、哈希查找)以及图论中的最短路径算法(Dijkstra算法...

    快速排序和二分查找

    【快速排序】是一种高效的排序算法...快速排序尤其适用于大数据量的排序,而二分查找则适合在已排序的数据中查找特定元素。在这个Java程序中,这两个算法被巧妙地结合在一起,提供了一个完整的银行客户信息管理的示例。

    Java 数据结构与算法+源代码 高清版

    这里涉及的主要算法类型有排序算法(如冒泡排序、快速排序、归并排序、堆排序)、查找算法(如线性搜索、二分查找)、图算法(如深度优先搜索、广度优先搜索)以及动态规划、贪心算法和回溯法等。排序算法用于调整...

    Java数据结构 查找 武汉大学PPT学习教案.pptx

    本教程将聚焦于Java中两种常见的查找方法:顺序查找法和折半查找法。 **顺序查找法** 顺序查找法是最基础的查找策略,尤其适用于小型数据集或未排序的数据。在Java中,它通过遍历数组或列表的每个元素,逐个与目标...

    java 数据结构及算法讲义

    Java 数据结构与算法是计算机科学中的核心组成部分,对于任何Java开发者来说,理解并熟练运用它们至关重要。本讲义深入浅出地介绍了如何在Java中实现常见的数据结构和算法,为学习者提供了丰富的理论知识和实践指导...

    数据结构算法 java和c语言两种实现

    常见的有排序算法(如冒泡排序、选择排序、插入排序、快速排序、归并排序、堆排序)、查找算法(如顺序查找、二分查找、哈希查找)、图算法(如Dijkstra最短路径、Floyd所有最短路径、Prim最小生成树)、动态规划、...

    java数据结构课件与分析

    7. **排序和搜索算法**:包括冒泡排序、快速排序、归并排序、二分查找等。了解这些算法的原理和Java实现,以及它们的时间复杂度分析。 8. **树结构**:如二叉树、平衡树(AVL树、红黑树)、堆(优先队列的实现)。...

    JAVA数据结构笔记

    在Java编程中,数据结构是理解复杂算法和高效程序设计的基础。本笔记主要涵盖了从第一章到第六章关于数据结构和Java语言的相关知识点。 第一章介绍了数据结构的基本概念,包括面向对象的特性如对象、继承和多态,...

    数据结构与算法JAVA版

    数据结构与算法是计算机科学的基础,对于理解和解决复杂问题至关重要。在Java编程语言中,实现数据结构和算法能帮助我们高效地...在实际开发中,根据具体需求选择合适的数据结构和算法,可以显著提高程序的性能和效率。

    数据结构与算法(JAVA语言版解密)

    书中内容涵盖了面向对象程序设计的基础知识、数据结构与算法的核心理论、以及各类数据结构与算法的Java实现。 在Java与面向对象程序设计部分,书中从基本语言知识开始,包括基本数据类型、运算符、流程控制语句、...

    Java程序设计(新) 单元设计——单元3 数据与异常处理程序设计.doc

    【Java程序设计】单元3——数据与异常处理程序设计,是Java编程学习的重要部分,主要涵盖了数组、字符串处理和异常处理三大核心知识点。 在数组方面,学习者需要掌握如何声明和创建数组,包括一维和二维数组。声明...

    《数据结构(Java版)》课件.rar

    数据结构是计算机科学中的核心课程,它探讨了如何有效地...在实际开发中,正确选择和使用数据结构能显著提高程序性能,解决复杂问题。因此,无论你是初学者还是经验丰富的开发者,深入研究数据结构都是一个必要的过程。

    Java 与 数据结构

    《Java程序设计与数据结构(第2版)》是一本深度探讨如何在Java编程中应用数据结构的书籍。数据结构是计算机科学中的核心概念,它关乎如何有效地存储和组织数据,以便于高效地访问和修改。Java作为一种面向对象的语言...

Global site tag (gtag.js) - Google Analytics