• 【二分查找生活应用】


    二分查找
    1、例如:抱着一堆书走出图书馆的时候,检测器突然响了(其中一本书没有消磁),现在要检查哪一本书没有消磁。
    (1)比较耗时的方式就是,一本一本书用检测器都检查下。
    (2)比较快的方式是:分成相等的2份,分别给检测器检测。引起报警的那一份,再分成2份,分别给检测器检测,重复这个过程,直到找到引起报警那本书。
        第二种方式就体现了二分查找思想。
    2、二分查找依赖的是顺序表结构,简单的说就是数组。(二分查找需要按照下标随机访问元素,用其他数据结构,例如链表的话,时间复杂度会变高)
    3、二分查找针对的是有序数据。
    4、数据量太小不适合二分查找(因为此时遍历、二分查找花的时间差不多)
    5、数据量太大也不适合二分查找。(二分查找底层依赖数组这种数据结构,而数组需要连续的内存空间,如果数据量太大,太耗内存。)
    6、二分查找的时间复杂度为O(logn)


    一工人要维修一条10km长的电话线,如何迅速查出故障所在。如果沿着线路一小段一小段查找,困难很多.每查一个点要爬一次电线杆子,10km长,大约有200多根电线杆子。因此就可使用二分法:设电线两端分别为A、B,他首先从中点C查,用随身带的话机向两端测试时,发现AC段正常,断定故障在BC段,再到BC中点D,发现BD正常,可见故障在CD段,再到CD中点E来看,这样每查一次,就可以把待查线路长度缩减为一半,故经过7次查找,就可以将故障发生的范围缩小到50—100m左右,即在一两根电线杆附近。这样就省了很多精力了。


    例 2现有 12 个小球,从外观上看完全相同,除了一个小球重量不合标准
    外其余的小球重量均相同,用一架天平限称三次把这个 ;坏球 ;找出来
    并说明此球是偏轻还是偏重,如何称?

    第一次:6 6 

    第二次:3 3

    第三次:1 1

  • 相关阅读:
    SpringBoot和Vue整合ECharts——基于SpringBoot和Vue的后台管理系统项目系列博客(十六)
    Windows安装Linux双系统教程
    easyexcel的简单使用(execl模板导出)
    理解“闭包”
    C++ MiniZip实现目录压缩与解压
    【暴力DP】CF1409 F
    解决 vite 4 开发环境和生产环境打包后空白、配置axios跨域、nginx代理本地后端接口问题
    FPGA基础 - 1
    JavaScript单例模式
    WordPress 后台密码忘记后,重置找回密码的 N 种方法
  • 原文地址:https://blog.csdn.net/gaojingsong/article/details/127791080