美文网首页
二分查找法BinarySearch

二分查找法BinarySearch

作者: progressin_2240 | 来源:发表于2018-01-28 13:19 被阅读0次

二分查找法的两种形式-递归和非递归,递归形式简单,但是在数量大时所消耗的时间空间也极大,下面以Java代码给出两种形式的具体实现
1)非递归

public class BinarySearch{
       public static void main(String[] args){
       //有时间补上传入浮点数异常的情况
       }
       //-1代表未成功查找
       public static int search(int key,int[] a){
                if(a.length<=0){
                       return  -1;  
                }
                else
                {
                       int start = 0;
                       int end = a.length-1;
                       while(start<=end){
                             mid = (start + end)/2;
                             if(a[mid]==key)
                                   return mid;
                             else if(a[mid]>key)
                                   end = mid-1;
                             else
                                   start = mid+1;
                        }
                        return -1;
                 }
       }
} 

2)递归

public class BinarySearch{
       public static void main(String[] args){
       int[]  a  = {1,2,3,4,5}
       start = 0;
       end = a.length - 1;
       k = 8;
       search(k,a,start,end);
       //有时间补上传入浮点数异常的情况
      
       }
       //-1代表未成功查找
       public static int search(int key,int[] a,int start,int end){
                if(start > end){
                       return  -1;  
                }
                else
                {
                       int mid = (start+end)/2;
                       if(a[mid]==key)
                            return mid; 
                        else if(a[mid]>key)
                              search(key,a,start,mid-1)
                        else if(a[mid]<key)
                              search(key,a,mid+1,end)           
                 }
        }
} 

2018-01-28

相关文章

  • 排序、查找算法

    1.二分法查找(递归) public int static binarySearch(int low ,int h...

  • 二分查找法BinarySearch

    二分查找法的两种形式-递归和非递归,递归形式简单,但是在数量大时所消耗的时间空间也极大,下面以Java代码给出两种...

  • 面试中常用的几个基本算法整理记录

    面试中常用的几个基本算法整理记录 二分查找 递归方法: binarySearch1int binarySearch...

  • SearchInRotatedAry

    其实这个问题,是基于二分查找(BinarySearch)来解决的。所以这里需要先理解一下二分查找。 1. 二分查找...

  • PHP 二分查找实例

  • Collections----binarySearch

    二分法查找的前提是:序列有序;所以在再调用binarySearch方法之前,我们先要对元素进行排序; 常用形式: ...

  • 二分查找法

    二分查找法 二分查找法(递归)

  • alg4th-1.1

    [TOC] algorithm 4th笔记(1.1) 二分查找 前提:数组有序BinarySearch.java ...

  • BinarySearch二分查找

    二分思想 1. 二分的前置条件 存储在数组中 有序排列 2. 二分的思想 对于数组 [low] -> [high]...

  • 二分查找 BinarySearch

    1.我写的代码 测试数据来自维基百科 2.时间复杂度,空间复杂度的分析 二分查找递归查找数组的剩余长度依次为 n ...

网友评论

      本文标题:二分查找法BinarySearch

      本文链接:https://www.haomeiwen.com/subject/wgwaaxtx.html