冒泡排序是指对于一串无序列表,比如list = [6, 5, 4, 3, 2, 9.5,1],两两比较并将大的数字往列表右边放置,最终生成结果从小到大的排序列表[1, 2, 3, 4, 5, 6, 9.5]
完整代码如下:
def bubble_sort(list):
index = len(list) - 1 # 获取最大未排序索引
flag = False
while flag == False: # not sorted
flag = True
for i in range(index):
if list[i] > list[i+1]:
flag = False
list[i],list[i + 1] = list[i + 1],list[i] # 两列数据互换
index = index - 1
list = [6, 5, 4, 3, 2, 9.5,1]
bubble_sort(list)
print(list)
具体思路分析
- 获取最大未排序索引,初始状态下也就是列表长度减一,因为列表第一个数字的索引为0,即index = len(list) - 1
- 设定初始状态下flag = False,通过flag值判定此列表是否已经完成排序,False表示未排序,True表示已完成排序
- 当未排序时,则会进入父循环
while flag == False: # not sorted
flag = True
并且进入父循环时,将排序标志记为已完成
4. 之后就是按部就班的比较相邻两个数字的大小
for i in range(index):
if list[i] > list[i+1]:
flag = False
list[i],list[i + 1] = list[i + 1],list[i] # 两列数据互换
index = index - 1



