運用python實現冒泡排序算法


冒泡排序,一個經典的排序算法,因在算法運行中,極值會像水底的氣泡一樣逐漸冒出來,因此而得名。

冒泡排序的過程是比較兩個相鄰元素的大小,然后根據大小交換位置,這樣從列表左端開始冒泡,最后最大值會依次從右端冒出。

 

d088a9356bb0dc31844735204ffb458d1c158f78

python實現冒泡排序:

def bubble_sort(nums):

    for i in range(len(nums) - 1):

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

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

                nums[j], nums[j + 1] = nums[j + 1], nums[j]

    return nums

python實現冒泡排序的核心思想是通過從列表一端迭代循環元素,再通過一個循環讓這個元素之后的元素相鄰兩個比較,從而依次將最大值移動到最末端,如下圖示意。

9af0e4278f9c9fb8267f4be6f8590b611877a85b

本想放gif圖的,放不上有點問題。

 

關於冒泡排序的時間復雜度,在上面python實現的代碼中時間復雜度是n的平方,當然可以再考慮一下極端的情況:當隊列已經從小到大排好序或者從大到小排好序,從小到大排好順序時可以只掃描一遍就結束排序,此時時間復雜度為O(n),如果是從大到小,那么就需要掃描n-1次,同時需要比較交換n-1次,時間復雜度為n的平方 。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM