python实现各种排序算法
冒泡排序 """ 分析 1. 算法是一种与语言无关的东西,更确切地说就算解决问题的思路,就是一个通用的思想的问题 2. 冒泡算法作为最简单的一种排序算法,我们的关注点不应该是代码本身,而应该是思想 3. 冒泡排序思想的侧重点有两点:走一趟干到底选出最大的放到右边;走几趟能够把整个序列都排序完毕 4. 当走一趟干到底的时候考虑的是j的取值, 而不是j+1, 这样能清晰地知道range的范围应该是什么 5. is_ordered 标志位:如果有序列表就不再排序,直接退出 6. 两个for循环的考虑顺序:先考虑内层循环的意义,再考虑外层循环的意义 """ def bubble_sort(alist): n = len(alist) # i 代表的是第几趟,从1开始,表示第一趟 for i in range(1, n): is_ordered = True # j 表示走一趟 for j in range(n-i): if alist[j] > alist[j+1]: alist[j], alist[j+1] = alist[j+1], alist[j] is_ordered = False if is_ordered: return if __name__ == '__main__': lis = [9, 11, 2, 2, 1, 20, 13] bubble_sort(lis)