`
qq1214917885
  • 浏览: 9232 次
文章分类
社区版块
存档分类
最新评论

二分法小结

 
阅读更多
二分法的关键在于对“=”的判断选取范围。例如对于目标task这样寻找:
while (l <= r)
            {
                int mid = (l + r) / 2;
                if (mid < task) l = mid + 1;
                else r = mid - 1;
            }
            printf("%d\n", l);

这里选择了将mid == task 的情况放入mid > task的情况。因为最后输出的用的是l.
(就是让程序找到目标task的时候,task是大于接下来的搜索范围的,然后使l不断的增加)。当到达循环终止l == r 的时候呢l 会再一次+1从而得到task而退出循环。。

相反的,如果输出是用r,那么应将mid == task的条件归入mid < task.

--------------------------------------------------------
更新总结:
二分法两个要点:
1,判断是l = mid + 1 还是 r = mid - 1;这个可以由数列的单调性和所取值与目标值的相对大小综合判断。
2,判断最后是取下标r还是l;可以用最后的临界位置考虑,当l==r的时候。
如果此时得到的值与目标值相符且执行的是l = mid + 1,则l已经不符合,我们要的下标是r;
如果此时得到的值与目标值不相符且执行的是l = mid + 1,则r已经不符合,我们要的下标是l;
如果此时得到的值与目标值相符且执行的是r = mid - 1,则r已经不符合,我们要的下标是l.
如果此时得到的值与目标值不相符且执行的是r = mid - 1,则l已经不符合,我们要的下标是r;

----其实也就是说,我们最后取的是(我们不要的那个条件)的变量。
例子如上面代码,我们要的是mid >= task的临界,不要的是mid < task;故用l下标;

分享到:
评论

相关推荐

    leetcode和pat甲-Notes:学习笔记整理

    二分法小结.md 搜索旋转排序数组.md 搜索旋转排序数组 II (重复).md 剑指 Offer 11. 旋转数组的最小数字【二分】.md 剑指 Offer 53 - I. 在排序数组中查找数字 I 【二分】.md 剑指 Offer 53 - II.

    山东省青岛市即墨一中高中数学 二分法教学案(无答案)新人教A版必修1

    课堂小结 1. 由函数的零点与相应方程根的关系,我们可用二分法来求方程的近似解. 2. 由于计算量较大,而且是重复相同的步骤,因此,我们可以通过设计一定的计算程序,借助计算器或计算机来完成计算. 课后自主导学 ...

    PHP字符串逆序排列实现方法小结【strrev函数,二分法,循环法,递归法】

    主要介绍了PHP字符串逆序排列实现方法,结合实例形式总结分析了strrev函数,二分法,循环法,递归法等常用的字符串逆序排列操作实现技巧,需要的朋友可以参考下

    php网络开发完全手册

    1.7 小结 23 第2章 PHP的基础语法 24 2.1 语言构成与工作原理 24 2.2 常量与变量 25 2.2.1 常量的定义 25 2.2.2 变量的定义 26 2.2.3 变量的作用域 27 2.2.4 动态变量 29 2.3 运算符和关键字 29 2.4 流程控制语法 30...

    Java趣味编程100例 清华大学出版社.zip

    1.9 小结 26 第2章 身边的数学问题( 教学视频:59分钟) 27 2.1 黑色星期五 27 2.2 个人所得税 29 2.3 存钱问题 34 2.4 赛场统分 35 2.5 肇事车辆 37 2.6 分糖果 39 2.7 天平称物 43 2.8 平分七框梨 48 ...

    C/C++常用算法手册.秦姣华(有详细书签).rar

    1.9 小结 14 第2章 数据结构 15 2.1 数据结构概述 15 2.1.1 什么是数据结构 15 2.1.2 数据结构中的基本概念 16 2.1.3 数据结构的内容 16 2.1.4 数据结构的分类 18 2.1.5 数据结构的几种存储方式 18 2.1.6 ...

    算法设计与分析PPT(C语言完整版)

    4.6.1不同算法策略特点小结 4.6.2算法策略间的关联 4.6.3算法策略侧重的问题类型 习题 第5章图的搜索算法 5.1图搜索概述 5.1.1图及其术语 5.1.2图搜索及其术语 5.2广度优先搜索 5.2.1算法框架 5.2.2广度优先搜索的...

    LeetCode刷题模板.pdf

    1.3.4. 小结 28 1.4. LeetCode中二分查找题目 29 2. 双指针 30 2.1. 快慢指针 31 2.1.1. 什么是快慢指针 31 2.1.2. 快慢指针模板 31 2.1.3. 快慢指针相关题目 32 2.1.3.1. LC-141:链表是否有环 32 2.1.3.2. LC-142:...

    matlab在数学中的应用

    摘要 - 1 - Abstract - 2 - 第一章 引言 - 4 - 背景 - 4 - 数值分析 - 5 - MATLAB简介 - 5 - MATLAB功能 - 5 - 第二章 MATLAB在非线性方程上的...第七章 小结 - 20 - 第八章 程序附录 - 22 - 第九章 参考文献 - 26 -

    数据结构自测卷集及答案

    2. 线性有序表(a1,a2,a3,…,a256)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索 8 次。设有100个结点,用二分法查找时,最大比较次数是 7 。 3. ...

    histologie-dd:帮助组织学鉴别诊断

    正确的器官是根据简单的标准二分法确定的。 入门 可以在pdf子文件夹中找到完成的pdf文件。 目前有以下机构: dd_speicheldrüsen.pdf : 等式下颌下肌 等式舌下肌 等式腮腺 等式泪腺 胰腺 dd_darmrohr.pdf 食管...

    计算机二级公共基础知识

    在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。 完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只...

    Practice:leetCode刷题

    leetcode小分队每天一道,努力爬坑无论...斑点链表栈阴离子排序二分法有序地图散列表二叉树动态规划回溯位运算结章 7月每日一题8月每日一题9月每日一题10月每日一题11月每日一题12月每日一题1月每日一题 202102202103

    IOI国家集训队论文集1999-2019

    # 国家集训队论文列表(1999-2019) ... - _国家集训队论文列表(1999-2019)_ ...杨 弋 -《从“小H的小屋”的解法谈算法的优化》 朱晨光 -《浅析倍增思想在信息学竞赛中的应用》 李羽修 -《Hash函数的设计优化》 ...

Global site tag (gtag.js) - Google Analytics