一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java實現二分查找算法實例分析

Java實現二分查找算法實例分析

2019-12-30 14:00tolcf JAVA教程

這篇文章主要介紹了Java實現二分查找算法,實例分析了二分查找算法的原理與相關實現技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java實現二分查找算法。分享給大家供大家參考。具體如下:

1. 前提:二分查找的前提是需要查找的數組必須是已排序的,我們這里的實現默認為升序

2. 原理:將數組分為三部分,依次是中值(所謂的中值就是數組中間位置的那個值)前,中值,中值后;將要查找的值和數組的中值進行比較,若小于中值則在中值前面找,若大于中值則在中值后面找,等于中值時直接返回。然后依次是一個遞歸過程,將前半部分或者后半部分繼續分解為三部分。可能描述得不是很清楚,若是不理解可以去網上找。從描述上就可以看出這個算法適合用遞歸來實現,可以用遞歸的都可以用循環來實現。所以我們的實現分為遞歸和循環兩種,可以根據代碼來理解算法

實現代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class BinarySearch {
 public static void main(String[] args){
 int searchArr[] = new int[1000000];
 for(int i=0;i<1000000;i++){
  searchArr[i]=i;
 }
   System.out.println(binSearch(searchArr,0,searchArr.length-1,99));
    System.out.println(binSearch(searchArr,99));
  }
//遞歸二分查找
  public static int binSearch(int arr[], int start,int end,int sear){
    int mid = (end-start)/2 + start;
    if(sear==arr[mid]){
      return mid;
    }
    if(start>=end){
      return -1;
    }else if(sear < arr[mid]){
      return binSearch(arr,0,mid-1,sear);
    }else if(sear >arr[mid]){
      return binSearch(arr,mid+1,end,sear);
    }
    return -1;
  }
//循環二分查找
  public static int binSearch(int arr[],int key){
    int mid = arr.length/2;
    int start = 0;
    int end = arr.length-1;
    while(start<=end){
      mid = (end-start)/2+start;
      if(key ==arr[mid]){
        return mid;
      }else if(key <= arr[mid]){
        end = mid-1;
      }else if(key >=arr[mid]){
        start = mid+1;
      }
    }
    return -1;
  }

效率比較:

循環二分查找算法的效率高于遞歸二分查找算法

希望本文所述對大家的java程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91制片厂免费观看 | a级影视 | 亚洲AV久久久久久久无码 | 姐姐不~不可以动漫在线观看 | 1024免费永久福利视频 | 72张让男人一看就硬的图片 | 国产免费资源高清小视频在线观看 | 褪色的憎恨 | 女人与zzzooooxxx | 青青在线香蕉国产精品 | 天天做天天爱天天综合网 | 4438成人网| 国产suv精品 | 国产成人亚洲精品91专区手机 | sao虎在线精品永久在线 | www.一级片.com | 久久精品麻豆国产天美传媒果冻 | 192.168.191| 亚洲国产成人久久综合区 | 99视频网址| 国产va欧美va在线观看 | 亚洲欧美久久婷婷爱综合一区天堂 | 国产精品99爱免费视频 | 欧美日韩国产精品va | 第一福利在线导航 | 国产精品久久久久久岛国 | 美女gif跪趴式抽搐动态图 | 国内在线观看 | 成人福利在线视频免费观看 | fquer老师 | 九九精品国产亚洲A片无码 九九99热久久999精品 | 问一问免费咨询 | 猛h辣h高h文湿校园1v1 | 视频一区二区国产无限在线观看 | 成人午夜视频一区二区国语 | 高中生放荡日记高h娜娜 | 欧美日韩亚洲区久久综合 | 国产精品调教 | 双性np玩烂了np欲之国的太子 | 天天欲色成人综合网站 | 午夜小视频网站 |