有人能详细解释一下bogosort的平均运行时间是多少吗?
算法的伪代码:

while not isInOrder(deck):
    shuffle(deck)

最佳答案

n!排列,其中只有一个是正确的(假设元素不同)因此,在挥手的意义上,您可能希望在大约O(n!)次迭代之后选择正确的答案。*但是每个shuffle/check操作本身都是O(n)。因此,总体而言O(n.n!)
*准确地说,您可以用参数p=1/n作为geometrically-distributed random variable建模!。此变量的期望值为1/p=n!是的。

10-07 13:58