拙劣算法:手写二分法

关键点:1.二分法退出条件start=end
2.选择中间数(start + end) / 2
3.命中就return

    static int dichotomy(int[] input,int target) {
        if (input == null) {
            return -1;
        }
        int start = 0;
        int end = input.length -1;
        while (start != end) {
            int middle = (start + end) / 2;
            System.out.println("start = " + start + ",end = " + end + ",middle = " + middle);
            if (input[middle] == target) {
               return middle;
            }
            System.out.println("middle is " + middle);
            if (input[middle] > target) {
                end = middle - 1;
            } else if (input[middle] < target) {
                start = middle + 1;
            }

        }
        return -1;
    }

妈呀,居然完全正确!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,923评论 0 17
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,224评论 19 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,358评论 0 33
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 12,637评论 1 19
  • 记得早起,记得早睡 记得每天多喝水,记得今天还有还有单词没背 记得自己的目标,记得曾经因自己的随波逐流而无所事事 ...
    东城吼阅读 1,823评论 0 0

友情链接更多精彩内容