**
python 冒泡排序解析 以及代码
**
paixu=[12,435,53454,756,967,543,32,432]
print(paixu)
for i in range(0,len(paixu)-1):
for j in range(0,len(paixu)-i-1):
if paixu[j]>paixu[j+1]:
paixu[j],paixu[j+1]=paixu[j+1],paixu[j]
print(paixu)
#注意j+1的值,不能超出paixu的最大下标,所以j 的取值为len(paixu)-1
冒泡排序(两两比较,如果前面的值大于后面的值,将两个值调换,),分析:每次比较可以得到最大值,最大值不参与后续的比较,所以
#第一次参与比较的数有 [12,435,53454,756,967,543,32,432]
paixu[0]~paixu[7]
#第二次参与比较的数有 [12,435,756,967,543,32,432]
paixu[0]~paixu[6]
#第三次参与比较的数有 [12,435,756,543,32,432]
paixu[0]~paixu[5]
#第四次参与比较的数有 [12,435,543,32,432]
paixu[0]~paixu[4]
#第五次参与比较的数有 [12,435,32,432]
paixu[0]~paixu[3]
#第六次参与比较的数有 [12,32,432]
paixu[0]~paixu[2]
#第七次参与比较的数有 [12,32]
paixu[0]~paixu[1]
依此类推:外循环共需要 七 次 第七次比完只剩最小的一个数,不需要再比较
列表的长度-1 len(paixu)-1,就是外循环的次数
内循环就是相邻的两个数比较:外部循环执行 一次 需要比较的数
就减少一个 得出 内循环需要比较的范围为(0, len(paixu)-i -1)
“”"
i (外循环次数) 1 2 3 4 5 6 7
j (内循环最大下标的取值) 7 6 5 4 3 2 1
“”"
@TOC