09 冒泡排序 # encoding: utf=8 def bubble_sort(a_list): # 冒泡排序: 从下往上, 相邻两数比较, 将最大的数冒上来 n = len(a_list) for i in range(n - 1): for j in range(n - i - 1): if a_list[j] > a_list[j + 1]: a_list[j], a_list[j + 1] = a_list[j + 1], a_list[j] def bubble_sort_improve(a_list): # 改进的冒泡, 若有一次循环没有发生交换, 则本身有序 n = len(a_list) for i in range(n - 1): change_count = 0 for j in range(n - i - 1): if a_list[j] > a_list[j + 1]: a_list[j], a_list[j + 1] = a_list[j + 1], a_list[j] change_count = 1 if change_count == 0: return if __name__ == '__main__': a = [54, 26, 93, 17, 77, 31, 44, 55, 20] bubble_sort(a) for i in a: print(i, end=" ")