当前位置:  开发笔记 > 编程语言 > 正文

随机排序的运行时间

如何解决《随机排序的运行时间》经验,为你挑选了2个好方法。

sorted如果列表按O(n)运行排序,给定一个函数返回True ,你会如何描述这种运行时间:

def sort(l):
    while not sorted(l): random.shuffle(l)

假设洗牌是完全随机的.

这会用big-O表示法写吗?或者是否有其他方法使用随机组件对算法进行分类?



1> Pyrolistical..:

信不信由你,这里有一个wiki条目:http: //en.wikipedia.org/wiki/Bogosort

平均情况:O(N*N!)



2> Jörg W Mitta..:

该算法称为Bogosort.它是一类称为拉斯维加斯算法的算法实例.拉斯维加斯算法是随机算法,它始终保证正确的结果,但不保证计算资源.

由于其概率性质,Bogosort的时间复杂性无法直接用巴赫曼 - 兰道表示法表达.但是,我们可以对其预期的时间复杂性做出陈述.Bogosort的预期时间复杂度是O(n·n!).

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有