V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
tyroshu
V2EX  ›  问与答

请问各位,有序数组中如何寻找某一特定值,除了二分以外的算法,有类似的时间复杂度?

  •  
  •   tyroshu · Apr 15, 2021 · 1700 views
    This topic created in 1839 days ago, the information mentioned may be changed or developed.
    碰到这个问题,一头雾水
    9 replies    2021-04-16 21:46:46 +08:00
    zm8m93Q1e5otOC69
        1
    zm8m93Q1e5otOC69  
       Apr 15, 2021
    当然是哈希表啦
    abersheeran
        2
    abersheeran  
       Apr 15, 2021
    跳表。
    suiterchik
        3
    suiterchik  
       Apr 15, 2021
    如果数据结构限定为有序数组,那么对数据分布无先验信息的情况下,二分查找应该是效率最高的
    如果有先验的话,可以将二分查找改进为插值查找或者斐波那契查找
    raaaaaar
        4
    raaaaaar  
       Apr 15, 2021 via Android
    都有序数组了还 HASH 啥,二分挺快了呀,为什么不用
    ch2
        5
    ch2  
       Apr 15, 2021   ❤️ 2
    茴字几种写法?将来当面试官的时候装逼要用?
    ipwx
        6
    ipwx  
       Apr 15, 2021
    虽然二分查找和很多其他算法一样都是 O(log N),但是它常数很无敌的。。。

    除非你的需求是多次查找,可能会有均摊小于 O(log N) 的辅助数据结构。
    thedrwu
        7
    thedrwu  
       Apr 16, 2021 via Android
    三分
    tyroshu
        8
    tyroshu  
    OP
       Apr 16, 2021
    @ch2 是被面试官问到了。。。。
    tyroshu
        9
    tyroshu  
    OP
       Apr 16, 2021
    @suiterchik 感谢大佬
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5774 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 01:44 · PVG 09:44 · LAX 18:44 · JFK 21:44
    ♥ Do have faith in what you're doing.