python中的氣泡排序 Python中的氣泡排序

2021-10-13 09:04:14 字數 1077 閱讀 6824

氣泡排序(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 是一種簡單的排序演算法。它重複地遍歷要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來,直到不再需要交換,也就是說該數列已經排序完成。按照定義,兩兩排序,遇到第一次交換就重新遍歷,從第乙個數開始,直到不再需要交換,排序完成。在這裡,分享三種氣泡...