10_数据结构与算法_冒泡排序_Python实现

"""
冒泡排序:
    思想:
        从列表的开头处开始,并且比较一对数据项,知道移动到列表的末尾。
        每当成对的两项之间的顺序不正确时,算法就交换其位置。
        这个过程的效果就是将最大的项以冒泡的方式排到列表的末尾。
        然后,算法从列表开头到倒数第2个列表项重复这一个过程,依次类推,直到该算法从列表的最后一项开始执行。
"""

import random

#定义一个交换函数
def swap(lyst,i,j):
    temp = lyst[i]
    lyst[i] = lyst[j]
    lyst[j] = temp

#定义冒泡排序
def bubble_sort(lyst):
    n = len(lyst)
    while n > 1:
        i = 1
        while i < n:
            if lyst[i] < lyst[i-1]:
                swap(lyst,i,i-1)
            i += 1
        n -= 1
    return lyst

def test_sort():
    lyst = list(range(10))
    lyst = random.shuffle(lyst)          #打乱排序
    assert bubble_sort(lyst) == lyst

if __name__ == "__main__":
    test_sort()

猜你喜欢

转载自blog.csdn.net/PyDarren/article/details/83449283