冒泡排序
将列表的元素按照从小到大排列
li = [11,3,33,2,77,34]
思路:用for循环找每一个元素,每个元素与下一位元素对比,第一次循环找到最大的放在列表最后:
for i in range(len(li)-1):
if li[i] > li[i+1]:
temp = li[i]
li[i] = li[i+1]
li[i+1] = temp
这次循环找到最大值
接下来找第二大值,最后一个元素不需要循环,所以循环次数减一次:
for i in range(len(li)-2):
if li[i] > li[i+1]:
temp = li[i]
li[i] = li[i+1]
li[i+1] = temp
.
.
.
.
.
.
依次类推,列表共6个元素,故:
for i in range(len(li)-5):
if li[i] > li[i+1]:
temp = li[i]
li[i] = li[i+1]
li[i+1] = temp
在for循环上再加一层循环,从1开始循环,len(li)结束循环:
for j in range(1,len(li)):
for i in range(len(li)-j):
if li[i] > li[i+1]:
temp = li[i]
li[i] = li[i+1]
li[i+1] = temp
最后输出li 发现li列表的元素按照从小到大的排列
如果要求元素从大到小的排列:
for j in range(1,len(li)):
for i in range(len(li)-j):
if li[i] < li[i+1]:
temp = li[i]
li[i] = li[i+1]
li[i+1] = temp