Python冒泡排序(2)

來源:互聯網
上載者:User

標籤:代碼   body   方式   pytho   python3   [1]   for   交換   int   

冒泡排序:通過與相鄰元素比較的方式每次將一個數歸位

Python代碼:

"""冒泡排序(2)在未排序的數中,通過兩兩比較[換位]的方式,將最小的數移至首位N個數排序,則需要執行N-1輪,第1輪比較N-1次,後續每輪比上一輪少比較1次本例中:第1輪將0放到正確位置;第2輪將1放到正確位置;......第9輪將8放到正確位置;"""lst = [3, 6, 9, 1, 8, 7, 2, 5, 4, 0]print("排序前: %s\r\n" %lst)# 輪for i in range(len(lst)-1):    print("第%s輪" % (i+1))    # 次    for j in range(i+1, len(lst)):        # 如果前大後小,則交換位置        if lst[i] > lst[j]:            lst[i],lst[j] = lst[j],lst[i]            print("    第%s次 [%s]:%s,[%s]:%s比較 互換 %s" % (j-i,i,lst[j],j,lst[i],lst))        else:            print("    第%s次 [%s]:%s,[%s]:%s比較 不變 %s" % (j-i,i,lst[i],j,lst[j],lst))print("\r\n排序後:  %s" % lst)

 

輸出結果:

E:\python\algorithm>python3 bubbleSort2.py排序前: [3, 6, 9, 1, 8, 7, 2, 5, 4, 0]第1輪    第1次 [0]:3,[1]:6比較 不變 [3, 6, 9, 1, 8, 7, 2, 5, 4, 0]    第2次 [0]:3,[2]:9比較 不變 [3, 6, 9, 1, 8, 7, 2, 5, 4, 0]    第3次 [0]:3,[3]:1比較 互換 [1, 6, 9, 3, 8, 7, 2, 5, 4, 0]    第4次 [0]:1,[4]:8比較 不變 [1, 6, 9, 3, 8, 7, 2, 5, 4, 0]    第5次 [0]:1,[5]:7比較 不變 [1, 6, 9, 3, 8, 7, 2, 5, 4, 0]    第6次 [0]:1,[6]:2比較 不變 [1, 6, 9, 3, 8, 7, 2, 5, 4, 0]    第7次 [0]:1,[7]:5比較 不變 [1, 6, 9, 3, 8, 7, 2, 5, 4, 0]    第8次 [0]:1,[8]:4比較 不變 [1, 6, 9, 3, 8, 7, 2, 5, 4, 0]    第9次 [0]:1,[9]:0比較 互換 [0, 6, 9, 3, 8, 7, 2, 5, 4, 1]第2輪    第1次 [1]:6,[2]:9比較 不變 [0, 6, 9, 3, 8, 7, 2, 5, 4, 1]    第2次 [1]:6,[3]:3比較 互換 [0, 3, 9, 6, 8, 7, 2, 5, 4, 1]    第3次 [1]:3,[4]:8比較 不變 [0, 3, 9, 6, 8, 7, 2, 5, 4, 1]    第4次 [1]:3,[5]:7比較 不變 [0, 3, 9, 6, 8, 7, 2, 5, 4, 1]    第5次 [1]:3,[6]:2比較 互換 [0, 2, 9, 6, 8, 7, 3, 5, 4, 1]    第6次 [1]:2,[7]:5比較 不變 [0, 2, 9, 6, 8, 7, 3, 5, 4, 1]    第7次 [1]:2,[8]:4比較 不變 [0, 2, 9, 6, 8, 7, 3, 5, 4, 1]    第8次 [1]:2,[9]:1比較 互換 [0, 1, 9, 6, 8, 7, 3, 5, 4, 2]第3輪    第1次 [2]:9,[3]:6比較 互換 [0, 1, 6, 9, 8, 7, 3, 5, 4, 2]    第2次 [2]:6,[4]:8比較 不變 [0, 1, 6, 9, 8, 7, 3, 5, 4, 2]    第3次 [2]:6,[5]:7比較 不變 [0, 1, 6, 9, 8, 7, 3, 5, 4, 2]    第4次 [2]:6,[6]:3比較 互換 [0, 1, 3, 9, 8, 7, 6, 5, 4, 2]    第5次 [2]:3,[7]:5比較 不變 [0, 1, 3, 9, 8, 7, 6, 5, 4, 2]    第6次 [2]:3,[8]:4比較 不變 [0, 1, 3, 9, 8, 7, 6, 5, 4, 2]    第7次 [2]:3,[9]:2比較 互換 [0, 1, 2, 9, 8, 7, 6, 5, 4, 3]第4輪    第1次 [3]:9,[4]:8比較 互換 [0, 1, 2, 8, 9, 7, 6, 5, 4, 3]    第2次 [3]:8,[5]:7比較 互換 [0, 1, 2, 7, 9, 8, 6, 5, 4, 3]    第3次 [3]:7,[6]:6比較 互換 [0, 1, 2, 6, 9, 8, 7, 5, 4, 3]    第4次 [3]:6,[7]:5比較 互換 [0, 1, 2, 5, 9, 8, 7, 6, 4, 3]    第5次 [3]:5,[8]:4比較 互換 [0, 1, 2, 4, 9, 8, 7, 6, 5, 3]    第6次 [3]:4,[9]:3比較 互換 [0, 1, 2, 3, 9, 8, 7, 6, 5, 4]第5輪    第1次 [4]:9,[5]:8比較 互換 [0, 1, 2, 3, 8, 9, 7, 6, 5, 4]    第2次 [4]:8,[6]:7比較 互換 [0, 1, 2, 3, 7, 9, 8, 6, 5, 4]    第3次 [4]:7,[7]:6比較 互換 [0, 1, 2, 3, 6, 9, 8, 7, 5, 4]    第4次 [4]:6,[8]:5比較 互換 [0, 1, 2, 3, 5, 9, 8, 7, 6, 4]    第5次 [4]:5,[9]:4比較 互換 [0, 1, 2, 3, 4, 9, 8, 7, 6, 5]第6輪    第1次 [5]:9,[6]:8比較 互換 [0, 1, 2, 3, 4, 8, 9, 7, 6, 5]    第2次 [5]:8,[7]:7比較 互換 [0, 1, 2, 3, 4, 7, 9, 8, 6, 5]    第3次 [5]:7,[8]:6比較 互換 [0, 1, 2, 3, 4, 6, 9, 8, 7, 5]    第4次 [5]:6,[9]:5比較 互換 [0, 1, 2, 3, 4, 5, 9, 8, 7, 6]第7輪    第1次 [6]:9,[7]:8比較 互換 [0, 1, 2, 3, 4, 5, 8, 9, 7, 6]    第2次 [6]:8,[8]:7比較 互換 [0, 1, 2, 3, 4, 5, 7, 9, 8, 6]    第3次 [6]:7,[9]:6比較 互換 [0, 1, 2, 3, 4, 5, 6, 9, 8, 7]第8輪    第1次 [7]:9,[8]:8比較 互換 [0, 1, 2, 3, 4, 5, 6, 8, 9, 7]    第2次 [7]:8,[9]:7比較 互換 [0, 1, 2, 3, 4, 5, 6, 7, 9, 8]第9輪    第1次 [8]:9,[9]:8比較 互換 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]排序後:  [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

=====結束=====

Python冒泡排序(2)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.