数据结构与算法--Python实现之冒泡排序(Bubble Sort)

冒泡排序(Bubble Sorting)

算法思想:每一次都拿第一个元素和它后面的元素作比较,把大的元素往后挪。第一轮比较的时候把最大的元素放到列表的最后面,第二轮比较把次大的元素放到列表的倒数第二个位置,以此类推完成排序。时间复杂度为 数据结构与算法--Python实现之冒泡排序(Bubble Sort)

数据结构与算法--Python实现之冒泡排序(Bubble Sort)
Figure1: Bubble Sort First Pass

 

def short_bubble_sort(a_list):
    exchanges = True
    pass_num = len(a_list) - 1
    while pass_num > 0 and exchanges: # 为每一个位置寻找合适的值
        exchanges = False
        for i in range(pass_num): # 从前到后遍历,将大的元素逐步换到“最后”
            if a_list[i] > a_list[i+1]:
                exchanges = True
                a_list[i],a_list[i+1] = a_list[i+1],a_list[i]
        pass_num = pass_num - 1

图像和例子参考了这篇文章,里面有关于算法每部的运行步骤,值得参考。

http://interactivepython.org/courselib/static/pythonds/SortSearch/TheBubbleSort.html