大家好,欢迎收看我的文章,如果感觉我的文章能对您有所帮助,您可以点击关注我,您的支持就是我坚持创作的动力
冒泡排序算法
比如有6个数: [22,44,33,55,66,77]从大到小排序,对相邻的两位进行比较
第一轮
第一次比较: 44,22,33,55,66,77
第二次比较: 44,33,22,55,66,77
第三次比较: 44,33,55,22,66,77
第四次比较: 44,33,55,66,22,77
第五次比较: 44,33,55,66,77,22
经过第一轮比较后, 六个数中最小的数已经在最后面了, 接下来只比较前五个数, 依次类推
第二轮
44,55,66,77,33,22
第三轮
55,66,77,44,33,22
第四轮
66,77,55,44,33,22
第五轮
77,66,55,44,33,22
比较完成
代码实现
list0 = [2, 4, 3, 7, 8, 1, 0, 5, 11]
list0 = [22, 44, 33, 55, 66, 77]
# 冒泡排序的思想: 每次比较两个相邻的元素, 如果他们的顺序错误就把他们交换位置
def maopao(list0):
# 列表长度
length = len(list0) # ==>6
# 外层循环重复(length-1)次
for i in range(length - 1):
# 内循环依次重复6,5,,...,1(length - i -1)
for j in range(length - i - 1):
if list0[j] < list0[j + 1]:
list0[j], list0[j + 1] = list0[j + 1], list0[j]
return list0
if __name__ == '__main__':
print(maopao(list0))