數組常用查找方法(二分法查詢)


1、普通查詢方法

  遍歷數組,查找的值和數組中的值相等,返回查找值在數組中的下表位置,否則返回-1(角標從0開始計數)。

  public int search(int key,int[] a){
        for (int i = 0; i <a.length ; i++) {
            if(a[i]==key){
                return i;
            }
        }
        return -1;
    }

2、二分法查詢

  (1)數組數據必須從小到大有序排序

  (2)當所要查詢的值大於中間值,說明要查找的值可能存在於arr[mid+1]到arr[end]之間,所以start = mid+1

  (3)當所要查詢的值小於中間值,說明要查找的值可能存在於arr[start]到arr[mid-1]之間,所以end = mid-1

 public int binarySearch(int key,int[] a){

        int start = 0;
        int end = a.length-1;
        while (start<=end){
            int mid = (start+end)/2;
            if(key<a[mid]) end = mid-1;
            else if(key>a[mid]) start = mid+1;
            else return mid;
        }
        return -1;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM