java 二分法

源码#

public class Dichotomy {
    public static void  main(String[] args){
        int[] array = new int[12];
        for(int i=0;i<12;i++){
            array[i] = i;
        }

        System.out.print(dichotomy(array,8));
    }

    private static int dichotomy(int[] array,int key){
        int left = 0,right = array.length-1;
        int t;
        while (left<=right){
            t = (left + right)/2;
            System.out.println("left"+left);
            System.out.println("right"+right);
            System.out.println(t);
            if(array[t] == key){
                return t;
            }
            if(array[t] < key){
                left = t+1;
            }
            if(array[t] > key){
                right = t-1;
            }
        }
        return -1;
    }
}
posted @   李帆1998  阅读(200)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示
主题色彩