zoukankan      html  css  js  c++  java
  • 【算法】二分查找——与答案进行比较的思维

    二分查找不算是一种算法
    我认为其更偏向为一种思想

    核心代码

        while(l<=r) {
            mid=(l+r)/2;
            if(judge(mid)) {
                r=mid-1;
            } else
                l=mid+1;
        }

    优点

    使正常搜索的O(n)复杂度降为O(logn)

    要求

    所要查找的目标数据必须为有序的

    说明

    二分查找是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。在学习与竞赛中,可以经常见到二分思想与其它算法结合的题目。

    用处

    搜索有序数组中的某数

    可以通过二分查找搜索数组中
    1.有无某数
    2.某数的位置

    求出方程在误差范围内的解

    通过不断二分缩小解的范围

    最大化最小值

    最小化平均值

    因为这种问题可以方便的比较
    给定一数与正确解的相对大小
    所以即使不知道解具体是什么
    但可以通过比较缩小解的范围

    参考文章:
    《挑战程序设计竞赛》
    百度百科

  • 相关阅读:
    ant中build.xml文件解释
    mysql练习题
    Mysql基本知识
    Python Socket 简单聊天室2
    Python Socket 简单聊天室1
    Python 导入模块
    Python 文件的处理
    Python yield
    Python 内置函数
    Python 生成验证码
  • 原文地址:https://www.cnblogs.com/BoilTask/p/12569481.html
Copyright © 2011-2022 走看看