数据结构&算法实践—【排序|交换排序】Bogo排序
维基百科上排序算法表里的算法基本都实现完了,陆续发出来
有几个排序只有英文维基说明,有几个有中文,但是压根对不上,例如臭皮匠排序…..晕死,查找中….
另外快排不敢轻易发出,等完全所有实现版本都搜罗分析完了再来.
排序»交换排序»地精排序
List:
0.概念(木有啥伪代码)
2.bogo排序实现
- start
这是一个比较蛋碎的排序算法…..囧
原理:将一堆卡片撒到地上,查看是否已排序好,若没有,捡起来再撒一次,直到有序情况出现.
维基百科:http://zh.wikipedia.org/wiki/Bogo%E6%8E%92%E5%BA%8F
有兴趣看看无限猴子定理:http://zh.wikipedia.org/wiki/%E7%84%A1%E9%99%90%E7%8C%B4%E5%AD%90%E5%AE%9A%E7%90%86
1.实现:
#!/usr/bin/python
# -*- coding:utf-8 -*-
#bogo排序
#@author: wklken@yeah.net
import random
def is_order(l): #判断序列是否有序
for i in range(len(l)-1):
if l[i] > l[i+1]:
return False
return True
def bogo_sort(l):
while not is_order(l):
random.shuffle(l) #随机重排
print l