原理:从左至右两两比较列表中的两数大小,如果排序错误则交换两数
代码实现
#冒泡排序
def bubble_sort(num_list):
#n个数字的列表最多有n-1个数字需要去比较
for i in range(len(num_list)-1):
#标记字段,判断这次比较是否有交换发生
flag = False
#只比较还未排序的数字
for j in range(len(num_list) - 1 - i):
#如果顺序不正确,交换顺序
if num_list[j] > num_list[j + 1]:
num_list[j],num_list[j + 1] = num_list[j + 1],num_list[j]
#交换过则更改标记字段
flag = True
#本次比较未做过交换证明列表已经是有序的了,直接返回结果
if not flag:
return num_list
return num_list
if __name__ == '__main__':
num = [9,8,7,6,4,5,3,2,1]
result = bubble_sort(num)
print(result) #[1, 2, 3, 4, 5, 6, 7, 8, 9]