冒泡排序法
冒泡排序法是嵌套循环的典型应用
1 l1 = [1,4,2,122,142,131,22,12,9,112] 2 print("l1的长度:::",len(l1)) 3 for i in range(len(l1)): #len(l1)是求出l1的长度以确认循环次数 4 print("当前循环对比的值为:%s,位置为%s"%(l1[i],i)) #确认每次循环比较的元素及其位 5 for v in range(len(l1)): #嵌套循环对比开始 6 if v > i: #每i次循环,可以确认l1[i]的位置,所以后续对比只需要比较v>i的时候开始 7 print("当前%s和%s对比"%(l1[i],l1[v])) #每次对比的值 8 if l1[i] > l1[v]: #对比 9 l1[i],l1[v] = l1[v],l1[i] #如果确定大小就换位置 10 print("当前循环已结束,循环元素为%s,位置为%s"%(l1[i],i)) #第i次循环结束 11 print("l1排序结果:",l1) #打印排序完成后的l1
适当加一些循环判断,可以大大降低对比的次数,如第7行代码
运行结果:
l1的长度::: 10 当前循环对比的值为:1,位置为0 当前1和4对比 当前1和2对比 当前1和122对比 当前1和142对比 当前1和131对比 当前1和22对比 当前1和12对比 当前1和9对比 当前1和112对比 当前循环已结束,循环元素为1,位置为0 当前循环对比的值为:4,位置为1 当前4和2对比 当前2和122对比 当前2和142对比 当前2和131对比 当前2和22对比 当前2和12对比 当前2和9对比 当前2和112对比 当前循环已结束,循环元素为2,位置为1 当前循环对比的值为:4,位置为2 当前4和122对比 当前4和142对比 当前4和131对比 当前4和22对比 当前4和12对比 当前4和9对比 当前4和112对比 当前循环已结束,循环元素为4,位置为2 当前循环对比的值为:122,位置为3 当前122和142对比 当前122和131对比 当前122和22对比 当前22和12对比 当前12和9对比 当前9和112对比 当前循环已结束,循环元素为9,位置为3 当前循环对比的值为:142,位置为4 当前142和131对比 当前131和122对比 当前122和22对比 当前22和12对比 当前12和112对比 当前循环已结束,循环元素为12,位置为4 当前循环对比的值为:142,位置为5 当前142和131对比 当前131和122对比 当前122和22对比 当前22和112对比 当前循环已结束,循环元素为22,位置为5 当前循环对比的值为:142,位置为6 当前142和131对比 当前131和122对比 当前122和112对比 当前循环已结束,循环元素为112,位置为6 当前循环对比的值为:142,位置为7 当前142和131对比 当前131和122对比 当前循环已结束,循环元素为122,位置为7 当前循环对比的值为:142,位置为8 当前142和131对比 当前循环已结束,循环元素为131,位置为8 当前循环对比的值为:142,位置为9 当前循环已结束,循环元素为142,位置为9 l1排序结果: [1, 2, 4, 9, 12, 22, 112, 122, 131, 142]

浙公网安备 33010602011771号