冒泡排序法

冒泡排序法是嵌套循环的典型应用

 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]

 

posted @ 2021-01-12 17:25  大王要我来巡山  阅读(92)  评论(0)    收藏  举报