優化氣泡排序(python)

2021-10-09 12:39:43 字數 549 閱讀 4859

'''

記錄交換操作發生的位置,如果沒有發生交換操作,則代表排序已經可以終止

這樣一來氣泡排序最好的情況下,時間複雜度就從o(n^2)優化到了o(n)

'''def

imroved_bubble_sort

(l):

length =

len(l)

swaplast = length -

1for i in

range

(len

(l))

: sign = swaplast

for j in

range

(swaplast)

:if l[j]

> l[j+1]

: temp = l[j+1]

l[j +1]

= l[j]

l[j]

= temp

swaplast = j

if sign == swaplast:

break

python 氣泡排序 優化

li 11,22,44,88,66,55,33 def maopao li n len li 遍歷列表長度減1次,最後乙個不需要比較 for i in range 1,n 建立乙個變數flag,用來記錄本輪冒泡,是否有資料交換位置 flag false 每次遍歷都獲取乙個元素,依次和後面的元素進行比...

Python 如何優化氣泡排序

什麼叫氣泡排序法?相信有接觸過演算法的朋友多少都了解氣泡排序法,那麼什麼是氣泡排序法呢?氣泡排序,英文名稱 bubble sort 是一種基礎的交換排序演算法,在日常工作中經常會用到,例如 頁面資料需按時間先後排序,這本質上也是一種氣泡排序法。喝過可樂的朋友都知道,可樂裡面的氣泡會向上浮,這就是氣泡...

氣泡排序的優化(python)

1 遇到的情況 對於s 5,1,2,3,4 這個列表而言,只執行一次迴圈即可實現排序,如果繼續迴圈,就是1與2 3 4進行排序,很浪費時間,所以沒必要。2 解決辦法 增加標示為flag,如果flag為true則表示還要繼續排序,否則直接輸出。3 coding utf 8 def bubble sor...