返回顶部

收藏

Python冒泡排序

更多
# -*- coding: utf-8 -*-

def bubble_sort(seq, cmp=cmp):
    """冒泡排序,伪码如下:
    BUBBLESORT(A)
    1  for i ← 1 to length[A]
    2    do for j ← length[A] downto i+1
    3      do if A[j] < A[j-1]
    4        then exchange A[j] &#8596; A[j-1]

    T(n) = θ(n^2)

    Args:
        seq (Sequence): 一个序列对象。
        cmp (Function): 比较函数。默认为内建函数cmp()。

    Returns:
        一个排序后的列表。
    """
    if (seq == None):
        return None
    length = len(seq)

    for i in range(length):
        for j in range(length-1, i, -1):
            if seq[j] < seq[j-1]:
                seq[j], seq[j-1] = seq[j-1], seq[j]

    return seq

if __name__ == '__main__':
    import random, timeit

    items = range(10000)
    random.shuffle(items)

    def test_sorted():
        print(items)
        sorted_items = sorted(items)
        print(sorted_items)

    def test_bubble_sort():
        print(items)
        sorted_items = bubble_sort(items)
        print(sorted_items)

    test_methods = [test_sorted, test_bubble_sort]
    for test in test_methods:
        name = test.__name__ # test.func_name
        t = timeit.Timer(name + '()', 'from __main__ import ' + name)
        print(name + ' takes time : %f' % t.timeit(1))
#该片段来自于http://outofmemory.cn

标签:python,算法

收藏

0人收藏

支持

0

反对

0

»更多 您可能感兴趣的代码
  1. 2014-06-25 16:19:02带有重复的全排列 by xwz
  2. 2014-07-17 15:53:173行Python代码解简单的一元一次方程 by 大猪
  3. 2014-08-13 14:21:23求最大最小最大值因数 by wubai
  4. 2014-11-20 13:23:18基于用户的协同过滤算法 by 山药
  5. 2014-06-24 20:52:32寻找递增最长子序列 by 大猪
  6. 2014-06-25 20:05:45Python寻找第k小的元素 by 大猪
  7. 2014-06-26 18:34:05Python堆排序(最大堆) by xwz
  8. 2014-06-30 14:08:07一个简单的二叉树实现 by 张宋付
  9. 2014-06-30 18:17:56python果然适合演示算法 by 蟋蟀MM
  10. 2014-09-08 14:37:32Python 冒泡排序 by 阮小七
  11. 2017-12-11 17:37:06表变量,代替临时表 by xuleaper
相关聚客文章
  1. 小数点 发表 2017-04-27 00:48:25 普通程序员如何向人工智能靠拢?
  2. 蓝鲸 发表 2017-09-15 02:05:05 使用python实现排序算法(Bubble Sort)
  3. rainy 发表 2015-11-25 03:05:26 图像主题色提取算法
  4. 小数点 发表 2017-04-18 02:43:37 python学习之路——python切片模拟LRU算法
  5. TLHL28 发表 2011-05-23 03:20:37 triple_des(des3) 算法 - php,python 实现
  6. 0X55AA 发表 2014-08-12 07:09:15 pyrasite项目总结为一条命令
  7. 0X55AA 发表 2015-01-05 03:42:41 python的__slots__
  8. youngsterxyf 发表 2012-11-21 16:00:00 pi的一种并行算法
  9. 博主 发表 2012-02-29 23:24:00 AStar算法的python实现
  10. 0X55AA 发表 2016-10-26 06:14:30 用antlr生成Python语言的mysql语法解析器
  11. 0X55AA 发表 2015-04-29 05:29:52 DHT爬虫站-芭蕉细雨
  12. rainy 发表 2015-09-02 15:52:26 网页正文及内容图片提取算法

发表评论