JAva実装二分法任意数の検索

2798 ワード

JAva実装二分法任意数の検索
今日は小さなものを書いて、二分法を利用して配列要素の検索を実現して、まず私たちはその実現論理を知る必要があります.まず、検索するデータは秩序正しく、重複しない必要があるので、まずソートします.ここではカスタムデータで、ソートしません.を選択します.くだらないことは言わないで、コードの中に注釈があって、必要なみんなは自分で見て、簡単に理解することができます.
  • コードは次のとおりです:
  • public class Text{
    
        public static void main(String[] args){
            int[] list = {2, 4, 7, 10, 11, 45, 50, 59, 60, 66, 69, 70, 79};  
    
                  int i =binarySearch(list,11);
                  System.out.println(i);  
        }
    
    /**
    *       ,           
    *   :      ,        
    */
    public static int binarySearch(int[] list, int key) {  
                int low = 0;  
                int high = list.length - 1;  
    
                while (high >= low) {  
                   //     
                  int mid = (low + high) / 2;  
                  //             ,   ,              -1
                 if (key < list[mid])  
                    high = mid - 1;  
                  else if (key == list[mid])  
                    return mid;  
                  else  
                    low = mid + 1;  
                }  
    
                return -low - 1; // Now high < low  
              }  
    
    }

    こんなに簡単で、終わりました.これでテストを実行できます.