折半查找---算法

实现代码:

/**
 * @author nami404
 * * @date 2025/3/5 23:47
 */
public class BinarySearch {
    /**
     *  二叉排序算法,要求数组必须是有序的,返回查找的key值在数组中的下标,没有找到则返回-1
     */
    public static int binarySearch(int[] array, int key) {
        int low = 0;
        int high = array.length - 1;
        while (low <= high) {
            int mid = low + (high - low) / 2;
            if (array[mid] < key) {
                low = mid + 1;
            } else if (array[mid] > key) {
                high = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;
    }

    public static void main(String[] args) {
        int[] array = {1,1,2,3,4,5,6,7,11,12,13,14,24,31,43};
        int result = binarySearch(array, 1);
        System.out.println(result);
    }
}
posted @ 2025-03-06 00:00  AI未来10Y  阅读(24)  评论(0)    收藏  举报