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