python -- 冒泡排序


[HTML_REMOVED][HTML_REMOVED]等待是这世界上最极致的煎熬[HTML_REMOVED][HTML_REMOVED]


排序过程

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个
  • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的
  • 针对所有的元素重复以上的步骤,除了最后一个
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

实例

动图

可以看出,每次排序都是确定当前序列的最大值在最后


算法实现

def bubble(L):
    print(L)
    for i in range(len(L)-1):    
        for j in range(len(L)-1-i):        
            if L[j] > L[j+1]:            
                L[j], L[j+1] = L[j+1], L[j]
        print(L)

    return L

if __name__ == '__main__':
    L = [23,42,2,34,34,322,5]
    L = bubble(L)
    print(L)