在我的一个算法中,我使用了 Ruby 的 combination和 permutation方法。我必须讨论这个算法的复杂性。我在哪里可以找到有关它们的复杂性/实现的信息?
我已经尝试实现一个简单的“手工制作”函数,但 Ruby 函数似乎几乎在恒定时间内运行!
如能提供有关查找位置的任何信息,我们将不胜感激。
最佳答案
实现可以显示在您链接的相同页面上。将鼠标悬停在组合/排列方法的名称上,然后选择 click to toggle source
。
您可以在主仓库查看最新和不同版本的源代码:http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/
您可以阅读 array.c
的修订历史,了解为什么/何时对组合/排列方法进行任何更改。 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/array.c?view=log .这可能会让您了解开发人员所做的复杂性和设计选择。
您甚至可以向源代码的某些贡献者询问他们为什么对方法进行 XYZ 更改的原因,他们可能会/可能不会提供帮助。
关于ruby - Ruby 组合函数的顺序复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23469225/