17

是否有所有内容的 Big-O 符号的主列表?数据结构、算法、对每个执行的操作、平均情况、最坏情况等。

4

6 回答 6

8

算法和数据结构字典是一个相当全面的列表,并且在算法的描述中包括复杂性(Big-O)。如果您需要更多信息,它会在其中一个链接的参考资料中,并且总是有 Wikipedia 作为后备。

于 2008-10-07T21:49:41.287 回答
6

Cormen的书更多的是教你如何证明给定算法的 Big-O 是什么,而不是死记硬背算法的 Big-O 性能。前者比后者更有价值,并且需要您进行投资。

于 2008-10-07T21:31:49.093 回答
2

试试Cormen、Leisersen 和 Rivest 的“算法简介”。如果它不在那里,它可能不值得知道。

于 2008-10-07T21:29:55.023 回答
2

在 c++ 中,STL 标准由算法的 Big-O 特征以及空间要求定义。这样,您可以在 STL 的竞争实现之间切换,并且仍然知道您的程序具有相同的运行时特性。特别好的 STL 实现甚至可以比标准要求更好的特定类型的特殊情况列表。

它使为特定问题选择正确的迭代器或列表类型变得很容易,因为您可以轻松地在空间消耗和速度之间进行权衡。

当然,Big-O 只是一个指导方针,因为所有常量都被删除了。如果算法在 k*O(n) 中运行,它将被归类为 O(n),但如果 k 足够高,对于 n 和 m 的某些值,它可能比 O(n^2) 更差。

于 2008-10-07T21:47:31.197 回答
0

算法简介,第二版,又名 CLRS(Cormen,Leiserson,Rivest,Stein),是我能想到的最接近的东西。

如果失败了,那么试试Knuth的 The Art of Computer Programming。如果不是这些,你可能需要做一些真正的研究。

于 2008-10-07T21:30:41.433 回答
0

对于任何从谷歌来回答这个问题的人。

http://bigocheatsheet.com/

于 2014-11-06T18:51:34.927 回答