15-排序2_冒泡排序

  • 阅读: 257
  • 更新: 2022-06-11

难度:

1. 题目描述

2. 关键点

  • 相邻元素两两比较

3. 代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
import random


def sort_bubble(lst):
    """冒泡排序"""
    lst_len = len(lst)
    for i in range(lst_len):
        for j in range(lst_len-1-i):
            if lst[j+1] <= lst[j]:
                lst[j], lst[j+1] = lst[j+1], lst[j]
        print(i, lst[lst_len-1-i:])


lst = [random.randint(0, 10) for i in range(10)]
print(lst)
sort_bubble(lst)
print(lst)

4. 运行示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[10, 8, 0, 1, 4, 9, 8, 2, 3, 7]
0 [10]
1 [9, 10]
2 [8, 9, 10]
3 [8, 8, 9, 10]
4 [7, 8, 8, 9, 10]
5 [4, 7, 8, 8, 9, 10]
6 [3, 4, 7, 8, 8, 9, 10]
7 [2, 3, 4, 7, 8, 8, 9, 10]
8 [1, 2, 3, 4, 7, 8, 8, 9, 10]
9 [0, 1, 2, 3, 4, 7, 8, 8, 9, 10]
[0, 1, 2, 3, 4, 7, 8, 8, 9, 10]

5. 进阶思考

  1. 优化示例代码

=== 全文完 ===


欢迎加入QQ群:778391413

京公网安备 11011302003970号 京ICP备2022012301号-1