好的,这可能是对arr
个不同整数的数组n
进行排序的最差方式,但我想分析这个算法:
arr
是否已排序。如果是这样,请返回。arr
。return
。Goofy的分拣程序是否有效? GoofySort的最佳案例是什么?在最好的情况下,运行时间是多少?什么是最坏的情况下运行时间?平均病例运行时间是多少?
答案 0 :(得分:3)
这种称为Bogosort。
O(n)
:你的第一个shuffle返回了一个排序列表。如果这种情况适合任何体面的名单,你应该购买彩票。O((n+1)!)
答案 1 :(得分:0)
您正在谈论bogosort算法..
回答你的问题:
GoofySort的最佳案例是什么?
在最好的情况下,数组已经排序,或者第一次随机化对其进行排序。
最佳情况下的运行时间是多少?
检查它的排序时间,或者洗牌所需的时间,以及检查两次排序的时间。
最糟糕的运行时间是什么?
它是无限的。你可以随机播放{1,3,2} => {3,1,2} => {1,3,2} => {3,1,2}永远。
平均病例运行时间是多少?
它是O((n + 1)!)(参见维基文章)。