Python之冒泡排序

from random import randint

'''
    该方法传入两个参数
    lst:当前待排序列表
    reserve 若不传值,默认为True
    reserve = True 从大到小排列
    reserve = False 从小到大排列
'''
def bubbleSort(lst, reverse=True):
    # 获取列表长度
    length = len(lst)
    for i in range(0, length):
        for j in range(0, length - i - 1):
            # 比较相邻两个元素大小,并根据需要进行交换
            # 默认升序排序
            exp = 'lst[j] > lst[j+1]'
            # 如果reverse=True则降序排序
            if reverse:
                exp = 'lst[j] < lst[j+1]'
            if eval(exp):
                lst[j], lst[j + 1] = lst[j + 1], lst[j]


# 声明20个长度的list列表
lst = [randint(1, 100) for i in range(20)]

# 输出未排序前列表
print('Before sort:
', lst)

# 开始排序
bubbleSort(lst, True)

# 输出排序后列表
print('After sort:
', lst)

运行结果


这里写图片描述

原文地址:https://www.cnblogs.com/bilaisheng/p/10211030.html