algorithm - 如何识别代码片段的 Big-O 表示法是否为对数时间 O(logn)?

标签 algorithm data-structures big-o

任何人都可以帮助我了解如何识别给定的代码片段是否是对数时间?我似乎无法理解这个概念。谢谢。

-一个例子就很好了。

最佳答案

如果您将输入划分为长度相等或几乎相等的部分,然后仅在输入的一部分中继续操作(搜索、排序等),那么您的代码将受 Log (n) 约束。


示例:

  1. 对已排序数组进行二分查找:在这里,您将输入数组分为两部分,然后仅继续搜索部分数组。复杂度为 O(Log2(n))。

  2. 搜索 m 路树:这里您的节点有 m 路。您可以从这 m 条路径中选择一条并继续沿树向下搜索。复杂度为 O(Logm(n))。

关于algorithm - 如何识别代码片段的 Big-O 表示法是否为对数时间 O(logn)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54621020/

相关文章:

python - python 中的大 O 表示法

algorithm - 硬币分配练习 - 是 NP 完全的吗?

algorithm - B+树删除后索引中的key会不会被删除?

java - 用于获取 "in memory"地理位置的 "around me"数据结构

data-structures - 我应该如何正确实现核心 Clojure 接口(interface)?

algorithm - 如果使用插入排序对每个桶进行排序,桶排序O(n+k)的时间复杂度如何?

algorithm - 如何最小化这个逻辑(或门 CNF)?

根据行驶巴士的路段确定午夜何时发生的算法

python - 使用 Python 中的优先级队列在 Dijkstra 算法上查找目标节点

algorithm - 挑战大O