`

二分查找法 binarySearch

 
阅读更多

/**

  * 折半查找法,前提是已经排好序的数组才可查找

  */

 

public class BinarySearch {
 int[] bArr;
 
 public void setArr(int[] bArr){
  this.bArr=bArr;
 }
 public static void main(String[] args) {
  int arrLength=16;
  int[] bArr=new int[arrLength];
  System.out.println("数组:");
  bArr=new int[]{72,31,13,94,85,27,64,71,19,55,49,40,8,70,17,13};
  for(int i=0;i<arrLength;i++){
   //bArr[i]=(int)(Math.random()*100);
   System.out.print(bArr[i]+"   ");
  }
  
  System.out.println();
  System.out.println("排序:");
  
  QuickSort qs=new QuickSort();
  qs.setArr(bArr);
  qs.quickSort(0, bArr.length-1);
  
  for(int i=0;i<arrLength;i++){
   System.out.print(bArr[i]+"   ");
  }
  
  BinarySearch bs=new BinarySearch();
  bs.setArr(bArr);
  
  System.out.println();
  System.out.println("查找:");
  int val=bs.binarySearch(bArr.length-1, 0, 13);
  System.out.println("查找:bArr["+val+"]="+13);
  
 }
 
 int binarySearch(int max,int min,int val){//有重复的取的是第一个出现的位置
  int mid=(max+min)/2;
  if(val==bArr[mid]){
   return mid;
  }
  else if(val>bArr[mid]){
   return binarySearch(max,mid,val);
  }
  else if(val<bArr[mid]){
   return binarySearch(mid,min,val);
  }
  return -1;//查找失败
 }
}

分享到:
评论

相关推荐

    java数据结构之二分查找法 binarySearch的实例

    Java数据结构之二分查找法BinarySearch实例 Java数据结构之二分查找法BinarySearch是一种高效的查找算法,通过将数组分割成两部分,并不断地缩小查找范围,直到找到目标元素或确定元素不存在。下面将详细介绍Java...

    BinarySearch二分查找法c代码

    假设有一个人要我们猜0-99之间的一个数,那么最好的方法就是从0-99的中间数49开始猜。 如果要猜的数小于49,就猜24(0-48的中间数);如果要猜的数大于49,就猜74(50-99的中间数)。...二分查找的工作方法就是如此。

    C++ 二分查找法

    在计算机科学领域,数据结构与算法是核心课程之一,其中二分查找法(Binary Search)是一种高效的查找技术,尤其适用于有序数组或列表的搜索场景。本文将深入探讨C++中实现二分查找法的具体细节、原理以及其在实际...

    MATLAB 二分查找法程序实现 .rar

    二分查找法是一种在有序数组中查找特定元素的高效算法,其基本思想是将查找区间不断缩小至一半,直到找到目标元素或者确定不存在为止。在MATLAB中实现二分查找法,可以极大地提高搜索效率,尤其对于大数据量的处理。...

    java 二分查找法的实现方法

    二分查找法,又称折半查找法,是计算机科学中一种高效的搜索算法,尤其适用于已排序的数据集合。在Java中,二分查找法通常用于数组或有序列表中,其核心思想是通过不断缩小搜索范围来快速定位目标元素。以下是关于...

    二分查找法.docx

    ### 二分查找法知识点详解 #### 一、二分查找法概述 二分查找法是一种在有序数组中查找特定元素的高效算法。其基本原理是通过将目标值与数组中间元素进行比较来缩小搜索范围,从而达到快速查找的目的。由于每次比较...

    采用二分查找法和顺序查找法查找元素的下标

    本主题主要关注两种常见的查找方法:顺序查找法和二分查找法。这两种方法在不同的场景下各有优势,理解并能熟练运用它们对于优化程序性能至关重要。 首先,我们来讨论顺序查找法。这种方法是最基础的查找策略,适用...

    二分查找法汇总1

    二分查找法是一种高效的数据搜索算法,其时间复杂度为O(log n),在处理大量有序数据时具有显著优势。在算法复杂度分析中,时间复杂度是衡量算法效率的重要指标,按照优劣排序大致为:O(1)、O(log n)、O(n)、O(n log ...

    C++数据结构折半查找法(二分查找)

    折半查找法,也称为二分查找法,是一种高效的搜索算法,尤其适用于已排序的数组或列表。本教程将深入探讨这个主题,帮助数据结构初学者理解和掌握这种强大的查找技术。 **一、二分查找法的基本概念** 二分查找法是...

    flash as3 二分查找动画演示

    二分查找(Binary Search)是计算机科学中一种高效的数据检索方法,适用于已排序的数组或列表。它的基本思想是将目标值与数组中间元素进行比较,如果目标值等于中间元素,则查找成功;如果目标值小于中间元素,则在...

    二分查找算法流程图流程图举例

    二分查找法也称为折半查找法,它是在有序数组中进行查找的一种高效方法。这种方法利用了数组有序的特点,通过不断将查找区间对半分割来减少搜索范围,从而显著提高查找效率。二分查找的时间复杂度为O(logn),这使得...

    二分查找算法

    在给定的标题“二分查找算法”和描述“二分查找,完整工程文件,源代码,VS2010”中,我们可以推测这可能是一个关于如何实现二分查找算法的C++项目,使用了Visual Studio 2010作为开发环境。 二分查找算法的基本...

    数据结构之C++二分查找法

    二分查找法是一种在有序数组中寻找特定元素的搜索算法,具有高效的特点。它通过将查找范围不断减半,直到找到目标元素或者确定其不存在为止。这种方法尤其适用于大型且已经排序的数据集,如电话簿、数据库索引等。在...

    二分查找法.pptx

    二分查找法,又称折半查找,是一种在有序数组中高效寻找特定元素的搜索算法。它的核心思想是通过不断地将待查找的区间减半来快速定位目标元素。以下是关于二分查找法的详细说明: 1. **使用前提**:二分查找法要求...

    折半查找法,也称为二分查找法.pdf

    折半查找法,又称二分查找法,是一种在有序数组中高效寻找目标值的算法。其核心思想是利用数组的有序性,通过不断缩小搜索范围,以递归或迭代的方式快速定位目标值。该方法特别适合于大规模数据的查找,因为它的平均...

    二分查找算法C++,递归和迭代

    cout二分查找法,请输入数列个数\n"; cin&gt;&gt;n; for(i=0;i;i++) cin&gt;&gt;a[i]; while(true) { cout请输入要查找的数:"; cin&gt;&gt;num;//读入要查找的数 //find=binarySearch(a,0,n-1,num); find=...

    c/c++二分查找修改版

    s[middle] 关键字小于中值 继续二分查找 并将上限改为middle BinarySearch s x low middle 1 ; else 关键字大于中值 继续二分查找 并将下限改为middle BinarySearch s x middle + 1 high ;"&gt;if high &lt; low ...

    实现二分查找的完美算法 c++

    二分查找,也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。它的基本思想是将数组分成两半,每次都比较中间元素与目标值,根据比较结果决定是继续在左半部分还是右半部分查找。这种方法的效率很高,因为...

    Hash查找、二分查找c语言关键字个数

    本项目主要涉及两种查找算法:哈希查找(Hash Search)和二分查找(Binary Search),并且应用在统计C语言源文件中的关键字个数。下面将详细阐述这两种查找算法以及它们在本项目中的具体应用。 哈希查找是一种高效...

    快速排序对数组排序,二分查找。

    快速排序和二分查找是计算机科学中非常...这些代码可能包括了主函数、快速排序函数(如`quickSort`)和二分查找函数(如`binarySearch`)。通过阅读和理解这些代码,你可以更深入地学习这两种算法的实际应用和细节。

Global site tag (gtag.js) - Google Analytics