折半查找---算法

实现代码:

/**
 * @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 @   AI未来10Y  阅读(9)  评论(0)    收藏  举报
相关博文:
阅读排行:
· C#高性能开发之类型系统:从 C# 7.0 到 C# 14 的类型系统演进全景
· 管理100个小程序-很难吗
· 在SqlSugar的开发框架中增加对低代码EAV模型(实体-属性-值)的WebAPI实现支持
· 如何统计不同电话号码的个数?—位图法
· 使用这个工具,基于代码仓库直接生成教程文档,感觉比我自己写的还好
点击右上角即可分享
微信分享提示