Python 氣泡排序演算法

2022-08-23 12:09:10 字數 1363 閱讀 3977

一,介紹

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

作為最簡單的排序演算法之一,氣泡排序給我的感覺就像 abandon 在單詞書裡出現的感覺一樣,每次都在第一頁第一位,所以最熟悉。氣泡排序還有一種優化演算法,就是立乙個 flag,當在一趟序列遍歷中元素沒有發生交換,則證明該序列已經有序。

二,演算法步驟

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。針對所有的元素重複以上的步驟,除了最後乙個。持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

三,相關問題

1. 什麼時候最快

當輸入的資料已經是正序時(都已經是正序了,我還要你氣泡排序有何用啊)。

2. 什麼時候最慢

當輸入的資料是反序時(寫乙個 for 迴圈反序輸出資料不就行了,幹嘛要用你氣泡排序呢)。

四,**實現

python版本

#

氣泡排序,時間複雜度o(n²)

defbubble_sort(num):

"""如果氣泡排序中的一次排序沒有發生交換,則說明列表已經有序,可以直接結束演算法

:param num:

:return:

"""for i in range(len(num) - 1):

exchange =false

print

(num)

for j in range(len(num) - 1 -i):

if num[j] > num[j + 1]:

num[j], num[j + 1] = num[j + 1], num[j]

exchange =true

ifnot

exchange:

return

num

return

numl = [33, 11, 12, 1, 2, 3, 4, 5, 22]

print(bubble_sort(l))

function

bubblesort(arr) }}

return

arr;

}

golang版本

func bubblesort(arr int) int}}

return

arr}

Python排序演算法 氣泡排序

def bubblesort seq length len seq for i in range length for j in range length 1,i,1 if seq j 1 seq j seq j 1 seq j seq j seq j 1 if name main seq 2,9,...

python 排序演算法 氣泡排序

所謂氣泡排序就是 將乙個數列中的數字兩兩之間進行比較,如果第乙個元素大於或小於第二個元素,那麼就將兩個元素位置交換,然後這個小或大值再往下兩兩比較,使最大或最小值慢慢浮到數列的最頂端,這樣的排序演算法我們稱之為氣泡排序。1 首先要獲取乙個數列,或者說乙個容器,那麼len 容器 2,否則我想排序就沒有...

Python氣泡排序演算法

coding utf 8 氣泡排序演算法 import random fenshu int input 請輸入考試滿分 renshu int input 請輸入考試人數 sortsre input 倒敘 正序 請選擇 y n while sortsre y and sortsre n print 您...