氣泡排序(bubble sort)也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢"浮"到數列的頂端。氣泡排序演算法如下:
比較相鄰的元素。如果第乙個比第二個大(公升序),就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完
後,最後的元素會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
第一種方法:
def bubble_sort(alist):
for j in range(len(alist)-1,0,-1):
# j表示每次遍歷需要比較的次數,是逐漸減小的
for i in range(j):
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
li = [23,38,22,45,23,67,31,15,41]
bubble_sort(li)
print(li)
第二種方法:
def bublle_sort(alist):
"""氣泡排序"""
n = len(alist)
for j in range(n-1):
count = 0
for i in range(0, n-1-j):
#從頭走到為
if alist[i]>alist[i+1]:
alist[i],alist[i+1] = alist[i+1],alist[i]
count +=1
if 0 == count:
break
if __name__ == "__main__":
li = [23,38,22,45,23,67,31,15,41]
print(li)
bublle_sort(li)
print(li)
Python中氣泡排序
python中氣泡排序演算法 usr bin env python coding utf 8 date 2017 04 12 12 20 39 author xiaoke 氣泡排序 import random list data 迴圈10次,往列表中存放10個從0到20的隨機數 for i in r...
python中氣泡排序
氣泡排序 for 變數 in 序列 語句塊range函式的原型為 start,stop,step 起點,終點,步長 引數必須是整數型別使用兩個引數可以建立乙個 start,end 區間內的連續整數的列表,如果指定第三個引數,則建立該區間內的乙個公差為step的等差數列。a 3,6,4,2,11,10...
python的氣泡排序
氣泡排序 英語 bubble sort 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,直到不再需要交換,也就是說該數列已經排序完成。按照定義,兩兩排序,遇到第一次交換就重新遍歷,從第乙個數開始,直到不再需要交換,排序完成。在這裡,分享三種氣泡...