# 冒泡排序,最小的元素像气泡一样逐渐上浮至水面
# 从最后面开始,相邻比较,较小元素的放在较大的元素上面
# 一轮之后最小的会跑到最上面,继续循环把次小的再排上来,直到整体有序
def bubble_sort_1(alist):
# 从后往前遍历索引
for j in range(len(alist)-1, 0, -1):
count = 0
# 把最大的往后换并固定住,再找出剩余的数中最大的,以此类推
for i in range(j):
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
count += 1
def bubble_sort_2(alist):
# 从前往后遍历索引
for j in range(0, len(alist)):
count = 0
# 把最小的往前换并固定住,再找出剩余的数中最小的,以此类推
for i in range(len(alist)-1, j, -1):
if alist[i] < alist[i-1]:
alist[i], alist[i-1] = alist[i-1], alist[i]
count += 1
if __name__ == '__main__':
nums1 = [54, 26, 93, 17, 77, 31, 44, 55, 20, 13]
bubble_sort_1(nums1)
print(nums1)
nums2 = [54, 26, 93, 17, 77, 31, 44, 55, 20, 13]
bubble_sort_2(nums2)
print(nums2)