Python常見演算法之氣泡排序與優化

2021-09-27 08:51:24 字數 1148 閱讀 2285

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

python實現:

def bubblesort(arry):

n = len(arry)

# 遍歷所有陣列元素

for i in range(n):

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

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

arry[j], arry[j+1] = arry[j+1], arry[j]

arr = [64, 34, 25, 12, 22, 11, 90]

bubblesort(arr)

print ("排序後的陣列:")

for i in range(len(arr)):

print ("%d" %arr[i]),

優化原因:如果乙個氣泡排序長度為100,但是實際上只需10次就能得到有序列表。可是計算機並不知道,所以他仍要進行剩下無意義的89次比較.

所以,當某次比較中,任意兩個元素都沒有發生交換,這時就表示列表已經有序。我們只需要給他乙個布林值,如果沒有交換,直接輸出列表。

python實現:

def bubblesort(arry):

n = len(arry)

sign = false

# 遍歷所有陣列元素

for i in range(n):

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

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

arry[j], arry[j+1] = arry[j+1], arry[j]

sign = true

if not sign:

return arry

retuen arry

常見演算法之氣泡排序

氣泡排序由於其簡單,通常是我們學習各類程式語言首先選擇學習的乙個排序演算法。1 public class bubblesort 5 建立氣泡排序類的物件 6 bubblesort sorter new bubblesort 7 呼叫排序方法將陣列排序 8sorter.sort array 9 10 ...

常見排序演算法之氣泡排序

1 首先,從第乙個元素開始,比較該元素與該元素相鄰的下乙個元素的大小 即第乙個元素與第二個元素的大小 如果該元素比較大則交換位置,否則不交換位置。2 按照1的步驟不斷重複的比較下一元素與其相鄰元素之間的大小,直到第n 1個元素,第一趟比較結束。例如 接下去是第二個元素,重複 1 的步驟,比較其與其相...

常見排序演算法之氣泡排序

氣泡排序 bubble sort 是一種較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序 如從小到大 首字母從a到z 錯誤就把他們交換過來。比較相鄰的元素。如果第乙個比第二個大 公升序 就交換他們兩個。對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對...