JAva二分検索アルゴリズム実装

1168 ワード

JAva二分検索アルゴリズムの実装手順:
package arithmetic;

/**
 * @author JasonLee
 * @description java     (    ),             
 *   :              ,               ,       ;                  ,
 *                     ,                。           ,
 *       。                     。
 */
public class DichotomyQuery {
    public static void main(String[] args) {
        int arr[] = {1,2,3,4,5,6,7,8};
        int i = binSearch(arr, 6);
        System.out.println(i);
    }


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