跳至内容
Python 俱乐部
用户工具
登录
站点工具
搜索
工具
显示页面
修订记录
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
alogrithm:bogo
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== Bogo排序算法 ====== ===== Bogo算法定义 ===== 下面是维基百科中Bogo算法定义: 在计算机科学中,Bogo排序(bogo-sort)是个既不实用又原始的排序算法,其原理等同将一堆卡片抛起,落在桌上后检查卡片是否已整齐排列好,若非就再抛一次。其名字源自Quantum bogodynamics,又称bozo sort、blort sort或猴子排序。 其实Bogo算法就是随机算法,给出一个序列,随机抽取序列中的元素,组成新的序列,如果序列为有序,则排序成功。 ===== Bogo算法的Python实现 ===== Bogo算法的平均时间复杂度是 O(n × n!),在最坏情况所需时间是无限。它并非一个稳定的算法。 <code python> from random import shuffle from itertools import izip, tee def in_order(my_list): """Check if my_list is ordered""" it1, it2 = tee(my_list) it2.next() return all(a<=b for a,b in izip(it1, it2)) def bogo_sort(my_list): """Bogo-sorts my_list in place.""" while not in_order(my_list): shuffle(my_list) </code>
alogrithm/bogo.txt
· 最后更改: 2011/04/07 09:15 (外部编辑)
页面工具
显示页面
修订记录
反向链接
回到顶部