Python学习笔记(9)冒泡排序算法

一、冒泡排序思路(降序)

  

l = [2,5,12,352,1,23,35,63,5,2] # 0-9

  对l进行排序

  从列表中将第一个数与第二个数进行比较,如果第一个数小于第二个数,则两数交换顺序,再次将第二个数与第三个数比较,如果第二个数小于第三个数,则交换顺序,依次比较len(l)-1次

  第一层循环:第一个数与第二个比较,第二个数与第三个比较,依次比较了len(l)-1次

  第二层循环:经历第一层循环后,最大的数排到数据第一位,接下来,从第二个数开始继续第一层的循坏,每经过第一层循环后,第二层循环需要比较的数就少一个,故需要经过len(l)-1-第一层循环次数

  

代码:

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): #这个循环是控制交换的次数
        if l[j] < l[j+1]:
            l[j],l[j+1] = l[j+1],l[j]#交换两个变量值
print(l)

  返回数据:

[352, 63, 35, 23, 12, 5, 5, 2, 2, 1]

 

二、对字典value值排序实例:

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}

data = list(d.items())
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

 返回数据:

1. 毛多锁 418
2. 小文 416
3. David 350
4. 梁明 350
5. 行者无疆 246
6. 心语 216
7. 王三侠 210
8. 王成 183
9. 阿梁 167
10. 陈卫亮 141.75
11. 漠然 139
12. 尤文奎Alex 138
13. 赵宗来 136.32
14. 大亮 128
15. 高娃 100.7
16. 幸福哥 100
17. 祁棒棒 79.24
18. 胖胖球🐌 68.16
19. 王俊兵 65
20. 郝明明 64
21. 小了白了兔 55
22. 兔兔 49
23. 瑞峰 22.13
24. 陈陈 20
25. 平民之女 9.66
26. 追~落日 3.21
27. 山峰 0

  

posted @ 2020-05-05 13:44  布谷鸟的春天  阅读(256)  评论(0编辑  收藏  举报