二分法查找

import java.util.Arrays;
import java.util.Scanner;

//二分法查找(输出的是下标)
public class TestBinarySearch {
    public static void main(String[] args) {
        int[] arr = {30,20,50,10,80,9,7,12,100,40,8};
//        int searchWord = 20;
        Arrays.sort(arr);   //二分法查找时,要先对其进行升序排序
        System.out.println(Arrays.toString(arr));
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入想要查找的元素值:");
        int searchWord = scanner.nextInt();
        System.out.println(searchWord+"元素的索引:"+binarySearch(arr,searchWord));
    }

    public static int binarySearch(int[] array,int value){
        int low = 0;
        int high = array.length-1;
        while(low<=high){
            int middle = (low+high)/2;
            if (value==array[middle]){
                return middle;
            }
            if (value>array[middle]){
                low = middle+1;
            }
            if (value<array[middle]){
                high = middle-1;
            }
        }
        return -1;
    }
}

  

posted @ 2022-06-23 22:26  理暗  阅读(16)  评论(0)    收藏  举报