谁能指出我列出了基本 clojure 库函数(如 conj、cons 等)的 Big-O 复杂性的资源?我知道 Big-O 会根据输入的类型而有所不同,但是,这样的资源是否可用?如果不知道它的运行速度有多快,我会感到不舒服。
问问题
2901 次
2 回答
17
这是一张由John Jacobsen撰写并取自该讨论的表格:
于 2013-06-11T15:42:37.393 回答
11
在这里聚会迟到了,但我发现第一个答案的评论中的链接更明确,所以我在这里重新发布它并进行一些修改(即english->big-o
):
在未排序的集合上,O(log 32 n) 几乎是恒定的时间,并且因为 2 32 个节点可以容纳在位分区的trie节点中,这意味着最坏情况下的复杂度为 log 32 2 32 = 6.4。向量也是索引为键的尝试。
排序的集合在可能的情况下使用二进制搜索。(是的,这些在技术上都是 O(log n);包括常数因子供参考。)
列表保证对第一个元素进行操作的恒定时间和对其他所有元素的 O(n)。
于 2014-01-05T10:11:49.487 回答