二分查找法小记

复制代码
package sort;

/**
 * @Author fyp
 * @Description
 * @Date Created at 2018/1/22 9:52
 * @Project tio-http-server
 */
public class FastSort {

    public static void main(String[] args){
        int[] ints = new int[]{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
        

       int searchIndex = search(ints,15);
        System.out.println("找到的索引值为:"+searchIndex);
    }

  /**
     * 二分查找法
     * 取中间值,然后比较,大,小,等于,直到比较出结果
     * */
    private static int search(int[] ints,int value){
        int startIndex = 0;
        int endIndex = ints.length - 1;
        int middleIndex;

        while (startIndex <= endIndex){
            //取出中间索引值
            middleIndex = (startIndex + endIndex) / 2;
            //如果value就和中间值相等,直接找到了,返回 O(1)
            if(value==ints[middleIndex]){
                return middleIndex;
            }
            if(value > ints[middleIndex]){
                //值大于中间值,从右边开始(+1 排除middleIndex的值)
                startIndex = middleIndex + 1;
            }else{
                //值小于中间值,从左边开始找(-1排除middleIndex的值)
                endIndex = middleIndex - 1;
            }
        }
        //如果运行到这里还没有返回值,说明数组里面没有
        return -1;
    }
}
复制代码

  

posted @   丶Pz  阅读(198)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示
+

"大爷常来玩呀"

微信支付