排序算法学习(python版本)之冒泡排序(BubbleSort)

冒泡排序(Bubble Sort,台灣譯為:泡沫排序或氣泡排序)是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。冒泡排序演算法的運作如下:

  •   1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  •   2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
  •   3. 針對所有的元素重複以上的步驟,除了最後一個。
  •   4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

代码:
#!/usr/bin/env python
#-*-encoding:utf-8

#BubbleSort
def bubble_sort(param):
    p_len = len(param)
    for i in range(p_len):
        for j in range(i+1,p_len)[::-1]:
            if param[j] < param[j-1]:
                param[j],param[j-1]=param[j-1],param[j]
    return param

def main():
    param = [1,2,3,5,7,6,4]
    print bubble_sort(param)

if __name__=="__main__":
    main()


参考资料:
http://zh.wikipedia.org/zh-cn/%E5%86%92%E6%B3%A1%E6%8E%92%E5%BA%8F

你可能感兴趣的:(算法,python)