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

2021-04-15 20:30:23 +08:00
 tyroshu
碰到这个问题,一头雾水
1267 次点击
所在节点    问与答
9 条回复
uselessVisitor
2021-04-15 21:32:44 +08:00
当然是哈希表啦
abersheeran
2021-04-15 22:22:45 +08:00
跳表。
suiterchik
2021-04-15 22:25:08 +08:00
如果数据结构限定为有序数组,那么对数据分布无先验信息的情况下,二分查找应该是效率最高的
如果有先验的话,可以将二分查找改进为插值查找或者斐波那契查找
raaaaaar
2021-04-15 22:25:19 +08:00
都有序数组了还 HASH 啥,二分挺快了呀,为什么不用
ch2
2021-04-15 22:42:55 +08:00
茴字几种写法?将来当面试官的时候装逼要用?
ipwx
2021-04-15 23:02:04 +08:00
虽然二分查找和很多其他算法一样都是 O(log N),但是它常数很无敌的。。。

除非你的需求是多次查找,可能会有均摊小于 O(log N) 的辅助数据结构。
thedrwu
2021-04-16 00:33:21 +08:00
三分
tyroshu
2021-04-16 17:02:45 +08:00
@ch2 是被面试官问到了。。。。
tyroshu
2021-04-16 21:46:46 +08:00
@suiterchik 感谢大佬

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/770939

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX