zoukankan      html  css  js  c++  java
  • 07:二分查找

    1、二分查找针对的是一个有序的数据集合,查找思想有点类似分治思想。每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0

    2、代码

    循环退出条件==》low<=high

    mid的取值==》low + (high - low)/2    low + ((high - low) >> 1)

    low和high的更新==》low=mid+1  high=mid-1

    3、应用场景==》二分查找依赖的是顺序表结构,简单点说就是数组;二分查找针对的是有序数据;数据量太小不适合二分查找;数据量太大也不适合二分查找。

    4、如何快速定位IP对应的省份地址

    5、二分查找的变形==》

    查找第一个值等于给定值的元素

    查找最后一个值等于给定值的元素

    查找第一个大于等于给定值的元素

    查找最后一个小于等于给定值的元素

  • 相关阅读:
    dijkstra 为什么不能解决负权边?
    Asteroids poj3041
    Dining poj3281
    炮兵阵地
    玉米田Corn Fields
    互不侵犯
    Golang---内存管理(内存分配)
    单例模式-Singleton
    HTTP2.0 学习
    Golang---GMP调度策略
  • 原文地址:https://www.cnblogs.com/liushoudong/p/13508978.html
Copyright © 2011-2022 走看看