冒泡排序


排序算法很多:
https://www.runoob.com/w3cnote/ten-sorting-algorithm.html
# 冒泡排序:1.外循环 2.内循环 3.内循环需要把已经循环过的不再循环了
#一维数组排序
l = [2,5,12,352,1,23,35,63,5,2] # 0-9
for i in range(len(l)-1): #这个是控制总共需要多少趟
    for j in range(len(l)-1-i): #这个循环是控制交换的 9
        if l[j] > l[j+1]:
            l[j],l[j+1] = l[j+1],l[j]
print(l)

注意:

1.多少趟,-1是因为外循环10个元素,其实只需要循环9次就循环完了--可理解为循环总长度

2.内循环-1也是因为交换循环的时候,从0开始的,等于长度会字段长度溢出,-i是因为外循环过的数,最大的已经排在了最后面了,就不用再排序了,节省时间可以---可理解为循环元素

3.所以第三步区元素内容的时候要用第二轮循环的j而不是i

 

#二维数组排序
d = {'行者无疆': 246, '王三侠': 210, '大亮': 128, '毛多锁': 418, '追~落日': 3.21, '小文': 416, '瑞峰': 22.13, '尤文奎Alex': 138, '阿梁': 167, '山峰': 0, 'David': 350, '胖胖球': 68.16, '幸福哥': 100, '梁明': 350, '郝明明': 64, '赵宗来': 136.32, '平民之女': 9.66, '王俊兵': 65, '祁棒棒': 79.24, '陈陈': 20, '兔兔': 49, '小了白了兔': 55, '高娃': 100.7, '漠然': 139, '心语': 216, '王成': 183, '陈卫亮': 141.75}
data1=d.items()
data = list(d.items())
print(data1)
print(type(data1))
for i in range(len(data)-1): #这个是控制总共需要多少趟
    for j in range(len(data)-1-i): #这个循环是控制交换的 9
        if data[j][-1] < data[j+1][-1]:
            data[j],data[j+1] = data[j+1],data[j]
count = 1
#二维数组循环
for name,km in data:
    print('%s. %s %s'%(count,name,km))
    count+=1

  重点和区别再

if data[j][-1] < data[j+1][-1]:
posted @ 2020-11-24 19:43  MLing  阅读(72)  评论(0编辑  收藏  举报