冒泡排序
核心思想即是相邻的两个数据进行比较:
假设数列A有n个数据,首先比较A[0]和A[1],确保较大的数在右边,后面重复同样的动作,
一直到最大值在最右边,但是这样得到的数据仍然是无序的,只不过是找到了最大值,
接下来要把最大值排除在外,再重复这个过程。。。。。
#实现剔除最大值后找最大值的过程 def pop_sort(lst): for i in range(len(lst)-1, 0, -1): move_max(lst, i) ''' 这部分输出的是: [7, 1, 4, 2, 3, 6] 5 [7, 1, 4, 2, 3, 6] 4 [7, 1, 4, 2, 3, 6] 3 [7, 1, 4, 2, 3, 6] 2 [7, 1, 4, 2, 3, 6] 1 ''' #实现最大值在右边 def move_max(lst, max_index): """ 将索引0到max_index这个范围内的最大值移动到max_index位置上 :param lst: :param max_index: :return: """ for i in range(max_index): if lst[i] > lst[i+1]: lst[i], lst[i+1] = lst[i+1], lst[i] if __name__ == '__main__': lst = [7, 1, 4, 2, 3, 6] pop_sort(lst) print(lst)
总的来说,就是找到最大值,然后把最大值去掉,再在剩下的找最大值,一直执行这个过程