(Python)十大算法之冒泡排序!

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
"""
冒泡排序核心:
两个两个数进行比较,小的放前边大的放后面(升序排序降序反之)
"""
# 定义一个函数,实现冒泡排序
def sort_the(list_):
# 由于需要两个两个的进行元素比较,每次比较都会把最大的一个值放到最后面,最后一轮比较可以省去,所以需要比较的次数为列表元素总数减一
for i in range(len(list_) - 1):
# 每次进行一轮比较后,会把最大的元素放到最后,所以每轮进比较的次数为 总轮数 - 当前轮次
for n in range((len(list_) - 1 - i)):
# 该排序是大的在后面, 如果需要大的在前面,把大于号改为小于号
if list_[n] > list_[n + 1]:
list_[n], list_[n + 1] = list_[n + 1], list_[n]
return list_


if __name__ == '__main__':

list_num = [23, 5, 0, 78, 56, 55, 77, 8, 2]
print(sort_the(list_num))