python冒泡排序二例代码

发布时间:2019-08-24编辑:脚本学堂
python冒泡排序的实现代码,二个python冒泡排序的例子,一起来学习下。

例1,python实现冒泡排序
 

复制代码 代码示例:

#!/usr/bin/env 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))

例2,python冒泡排序
 

复制代码 代码示例:

#!/usr/bin/env python
#

num = [23,2,3,6,18,9,33,13,24,19]
for j in range(len(num))[::-1]:
    for i in range(j):
        if (i<len(num)-1):
            if (num[i] > num[i+1]):
                temp = num[i]
                del num[i]
                num.insert(i+1, temp)
print num