冒泡排序

首先进行一次循环替换,如果列表中第1为比第二位大那么就把第一位的位置换到第二位,以此类推
为什么循环次数-1 因为下面用到了li[j+1]相当于从第二位开始循环,所以需要l-1
for j in range(l-1):
if li[j] >= li[j+1]:
li[j],li[j+1] = li[j+1],li[j]
为什么要进行两次循环在于第二层第一次循环只完成了一次替换,要完成所有的替换至少要替换n次也就是l次
li = [3,8,5,6,7,6,9,12]
l = len(li)
for i in range(l):  
for j in range(l-1):
if li[j] >= li[j+1]:
li[j],li[j+1] = li[j+1],li[j]

print(li)
这里为什么进行l-i-1因为在冒泡排序中第一次排序完成后就不需要再从头开始排序,第一位已经排序好了所以从第二位开始排序
所以要减去第一次循环的次数
li = [3,8,5,6,7,6,9,12]
l = len(li)
for i in range(l):  
for j in range(l-i-1):
if li[j] >= li[j+1]:
li[j],li[j+1] = li[j+1],li[j]

print(li)
 
 
posted @ 2020-07-15 10:54  寂静音无  阅读(130)  评论(0)    收藏  举报