Python 冒泡排序分析总结

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
第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]

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

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