数据结构&算法实践—【排序|交换排序】Bogo排序

维基百科上排序算法表里的算法基本都实现完了,陆续发出来

有几个排序只有英文维基说明,有几个有中文,但是压根对不上,例如臭皮匠排序…..晕死,查找中….

另外快排不敢轻易发出,等完全所有实现版本都搜罗分析完了再来.


排序»交换排序»地精排序

List:

0.概念(木有啥伪代码)
2.bogo排序实现
  1. 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