小规模零申报完整报税流程

小翻译总结

  返回  

Python3实现冒泡排序

2021/7/20 13:37:52 浏览:

声明:参考B站视频,自学成长记录
https://www.bilibili.com/video/BV1mp4y1D7UP?p=12

'''
冒泡排序
    数   索引
    5   3
    7   2
    9   1
    1   0
    两两相比,如果前面的比后面的值大,则对换位置
        a. 1跟9比,1没有9大,不需要对换
        b. 9跟7比,9比7大 -> 下标1=9,下标2=7 -> 下标1=7,下标2=9
        c. 9跟5比,9比5大 -> 下标2=9,下标3=5 -> 下标2=5,下标3=9
    一次对比过后:
        无序区:1,7,5  有序区:9
        比较次数:列表个数4 - 自身1
    无序区n遍:
        继续在无序区中两两相比次数:列表个数 - 自身1 - 有序区个数
'''


def maopao(lst):
    '''
    冒泡排序
    :param lst: 待排列表
    :return:
    '''

    # 对比次数(列表个数 - 自身1)
    for i in range(len(lst) - 1):
        # 是否退出标识
        brk = True
        # 待排区对比次数(列表个数 - 自身1 - 已对比次数)
        for j in range(len(lst) - 1 - i):
            # 如果前面比后面大
            if lst[j] > lst[j + 1]:
                # 前后对调值
                lst[j], lst[j + 1] = lst[j + 1], lst[j]
                # 如果前面比后面大,不退出
                brk = False
        print(lst)
        # 如果遍历一遍后  不存在前面比后面大
        if brk:
            # 退出遍历
            return


lst = [5, 4, 3, 2, 1, 9, 6, 7, 8]
maopao(lst)
print(lst)
'''
运行结果:
    [4, 3, 2, 1, 5, 6, 7, 8, 9]
    [3, 2, 1, 4, 5, 6, 7, 8, 9]
    [2, 1, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
'''

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号