Python排序演算法之氣泡排序

2021-08-22 19:31:04 字數 1229 閱讀 4126

顧名思義,氣泡排序直觀的意思是氣泡越大冒的越快:),對應到我們的列表中就是數字最大的先選出來,然後依次進行。例如 mylist = [1,4,5,0,6],比較方式為:

相鄰的兩個數字先進行比較,也就是mylist[0]和mylist[1],發現不是">"的關係,就繼續比較mylist[1]和mylist[2]。。。依次進行,發現mylist[2]>mylist[3](及5>0),就進行交換,所以走完第一次全列表比較得到新列表[1,4,0,5,6],然後每一次掃瞄得到的新列表如下:

第一次:[1,4,0,5,6]

第二次:[1,0,4,5,6]

第三次:[0,1,4,5,6]

第四次:[1,4,5,0,6]

1 def bubblesort(mylist):

2 #首先獲取list的總長度,為之後的迴圈比較作準備

3 length = len(mylist)

4

5 #一共進行幾輪列表比較,一共是(length-1)輪

6 for i in range(0,length-1):

7

8 #每一輪的比較,注意range的變化,這裡需要進行length-1-長的比較,注意-i的意義(可以減少比較已經排好序的元素)

9 for j in range(0,length-1-i):

10

11 #交換

12 if mylist[j] > mylist[j+1]:

13 tmp = mylist[j]

14 mylist[j]=mylist[j+1]

15 mylist[j+1] = tmp

16

17 #列印每一輪交換後的列表

18 for item in mylist:

19 print(item)

20 print("*************************====")

21 22 print("bubble sort: ")

23 mylist = [1,4,5,0,6]

24 bubblesort(mylist)

排序演算法之python氣泡排序

氣泡排序是一種交換排序 比較相鄰的連個關鍵字,把大的往後放,小的就向前移動,即冒泡 def bubblesort input list 如果待排序列為空,則直接返回空列表 if len input list 0 return sorted list input list for i in range...

排序演算法(python) 之 氣泡排序

比較相鄰的兩個元素,若前乙個大於後乙個則交換 對每一對相鄰元素進行比較,直至最後一對元素。重複上述步驟,知道排序完成。這為向上冒泡。向下冒泡同理。1 向上冒泡 m input split n int m i for i in range len m 輸入的陣列 for i in range len ...

Python排序演算法之氣泡排序

比較列表相鄰的兩個值,如果前面比後面大,則交換這兩個值。每一趟氣泡排序,無序區減少乙個數,有序區增加乙個數。最壞情況 o n 2n 2 n2 平均情況 o n 2n 2 n2 最好情況 o n o 1 穩定 簡單 趟數 n 1 無序區範圍 0 n 趟數 1 在一趟氣泡排序完成後,如果沒有發生任何的交...