冒泡法:基礎排序演算法

來源:互聯網
上載者:User

標籤:最大值   冒泡   結果   color   nbsp   not   排序   style   時間複雜度   

交換排序;結果分升序和降序兩種排列以升序為例:第一輪比較:兩兩比較大小,大值向右挪到,直到最大值挪動到索引為n-1的位置結束                     第二輪比較:兩兩比較大小,大值向右挪到,直到最大值挪動到索引為n-2的位置結束                     依此類推時間複雜度O(n) 簡單代碼實現
1 L=list(iterable) # L裡的元素為int類型2 for i in range(len(L)-1):3     count = 14     for j in range(len(L)-1-i):5         if L[j] > L[j+1]:6             L[j],L[j+1] = L[j+1],L[j]7             count += 1  # 記錄交換次數8     print(count)9 print(L)

 

最佳化代碼

 1 L=list(iterable) # L裡的元素為int類型 2 sum = 0  3 for i in range(len(L)-1): 4     flag = False  # 打標記 5     count = 0  6     for j in range(len(L)-1-i): 7         if L[j] > L[j+1]: 8             L[j],L[j+1]=L[j+1],L[j] 9             flag = True10      count += 1 #計算每次遍曆交換了幾次11     print(count) 12     sum += 1 # 計算總共遍曆了幾行13     if not flag: # 如果在某次遍曆一次也沒有交換,則break打斷14         break15 print(‘{},{}‘.format(L,sum))

 

冒泡法:基礎排序演算法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.