Python 冒泡排序分析总结

作者: ropon 分类: Python 发布时间: 2018-10-04 11:29

代码:

lst = [5,1,4,6]
# print(lst)
count = 0
while count < len(lst):
    i = 0
    while i < len(lst) - 1:
        print("第{0}次外层循环的内层循环第{1}次:".format(count+1, i+1))
        if lst[i] > lst[i + 1]:
            print("lst[{0}]={2},lst[{1}]={3},{2}大于{3}交换".format(i, i + 1, lst[i],lst[i + 1]))
            lst[i] , lst[i + 1] = lst[i + 1] , lst[i]
            print("lst={0}".format(lst))
        else:
            print("lst[{0}]={2},lst[{1}]={3},{2}不大于{3},不交换lst={4}".format(i, i + 1, lst[i],lst[i + 1],lst))
        i = i + 1
    print("第{0}次外层循环结束lst={1}".format(count+1,lst))
    count = count + 1
print(lst)

结果:

第1次外层循环的内层循环第1次:
lst[0]=5,lst[1]=1,5大于1交换
lst=[1, 5, 4, 6]
第1次外层循环的内层循环第2次:
lst[1]=5,lst[2]=4,5大于4交换
lst=[1, 4, 5, 6]
第1次外层循环的内层循环第3次:
lst[2]=5,lst[3]=6,5不大于6,不交换lst=[1, 4, 5, 6]
第1次外层循环结束lst=[1, 4, 5, 6]
第2次外层循环的内层循环第1次:
lst[0]=1,lst[1]=4,1不大于4,不交换lst=[1, 4, 5, 6]
第2次外层循环的内层循环第2次:
lst[1]=4,lst[2]=5,4不大于5,不交换lst=[1, 4, 5, 6]
第2次外层循环的内层循环第3次:
lst[2]=5,lst[3]=6,5不大于6,不交换lst=[1, 4, 5, 6]
第2次外层循环结束lst=[1, 4, 5, 6]
第3次外层循环的内层循环第1次:
lst[0]=1,lst[1]=4,1不大于4,不交换lst=[1, 4, 5, 6]
第3次外层循环的内层循环第2次:
lst[1]=4,lst[2]=5,4不大于5,不交换lst=[1, 4, 5, 6]
第3次外层循环的内层循环第3次:
lst[2]=5,lst[3]=6,5不大于6,不交换lst=[1, 4, 5, 6]
第3次外层循环结束lst=[1, 4, 5, 6]
第4次外层循环的内层循环第1次:
lst[0]=1,lst[1]=4,1不大于4,不交换lst=[1, 4, 5, 6]
第4次外层循环的内层循环第2次:
lst[1]=4,lst[2]=5,4不大于5,不交换lst=[1, 4, 5, 6]
第4次外层循环的内层循环第3次:
lst[2]=5,lst[3]=6,5不大于6,不交换lst=[1, 4, 5, 6]
第4次外层循环结束lst=[1, 4, 5, 6]
[1, 4, 5, 6]

主要说明冒泡排序流程,对于列表其实有更简单方法排序

lst = [5,1,4,6]
lst.sort()
print(lst)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

邮箱地址不会被公开。 必填项已用*标注