2024 Clojure 状态调查!中分享你的想法。

欢迎!请参阅关于页面以获取有关如何操作的更多信息。

+1
文档

你好,我刚刚接触 clojure。

我看到有一些大 O 是在数据结构部分。但是,有没有文档的地方能显示 clojure 所有操作的大 O 呢?

谢谢!

1 答案

+3

有一些关于核心操作相对它们的工作数据结构的表格在流传开来(来源于书籍)。不幸的是,我想我们这里不支持 markdown,至少不支持表格(我尝试粘贴进去,但并不奏效)。

这个表格来自 brymck,John Jacobsen 的原始表格(可能来源于其他地方)。

这是一个相当好的总结。如果我要做一个表格,我可能会专注于一些期望的类别期望,这些更通用——恒定、次线性或线性。

还有一点要知道的是,有一些重要的接口(由谓词函数暴露)也暗示了性能类别。例如,Counted(使用`counted?`检查)表示它是否可以在常数时间内计数,并将分割出你在那一行看到的行为。类似地,Indexed(索引)和`indexed?`以及nth(索引n)也是这样。

重要的是要记住,如果一个数据结构不能在期望的约束内实现一个操作,我们则不实现它。nth和count有些特别,因为它们在上面的类中是通用多态的。
...