python實現冒泡排序


冒泡排序的思想及實現步驟
冒泡排序(Bubble Sort)
    冒泡排序的核心思想是:通過雙層循環遍歷,每次比較兩個數,如果他們順序錯誤(大於或者小於),那么就把他們位置交換。
 
• 首先,比較第一個數和第二個數的大小,由於是從小到大排列,所以如果第一個數大於第二個數,則將這兩個數互換位置,反之則不變。
• 然后進行第二個數和第三個數比較,同上。
• 這樣依次比較一輪后,你會發現,總共比了4次,也就是說,如果有n個數進行比較,那么需要n-1次才能完成。
• 上面過程主要完成了一輪比較,最終確定了一個最大的數,並且排在5個數的最后,也就是第五個數。
• 那么也就意味着需要在進行第一個數到第四個數的一輪比較,確定最大值。
• 接着從第一個數到第三個數......
• 這樣規律就很明顯了,五個數需要比較四輪,就能將5個數升序排列,所以n個數需要比較n-1輪。
 
冒泡排序算法利用了雙層循環,時間復雜度為O(n^2)
穩定性為:穩定
python實現冒泡排序的代碼
class Solution(object):
    def __init__(self,l):
        self.l = l

    def mp_sort(self):
        for i in range(len(self.l)):
            for j in range(len(self.l)-i-1):
                if self.l[j] > self.l[j+1]:
                    self.l[j+1], self.l[j]= self.l[j], self.l[j+1]
                else:
                    pass
        print(self.l)

P = Solution([2,7,3,11,25,9,14,3])
P.mp_sort()

# 運行結果:[2, 3, 3, 7, 9, 11, 14, 25]

 


免責聲明!

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



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