程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Python >> Python排序算法之冒泡排序

Python排序算法之冒泡排序

編輯:Python

冒泡排序

顧名思義,冒泡排序直觀的意思是氣泡越大冒的越快:),對應到我們的列表中就是數字最大的先選出來,然後依次進行。例如 myList = [1,4,5,0,6],比較方式為:

  相鄰的兩個數字先進行比較,也就是myList[0]和myList[1],發現不是">"的關系,就繼續比較myList[1]和myList[2]。。。依次進行,發現myList[2]>myList[3](及5>0),就進行交換,所以走完第一次全列表比較得到新列表[1,4,0,5,6],然後每一次掃描得到的新列表如下:

  第一次:[1,4,0,5,6]

  第二次:[1,0,4,5,6]

  第三次:[0,1,4,5,6]

  第四次:[1,4,5,0,6]

直接上代碼:

 def bubbleSort(myList):
     #首先獲取list的總長度,為之後的循環比較作准備
     length = len(myList)
     
     #一共進行幾輪列表比較,一共是(length-1)輪
     for i in range(0,length-1):
         
         #每一輪的比較,注意range的變化,這裡需要進行length-1-長的比較,注意-i的意義(可以減少比較已經排好序的元素)
         for j in range(0,length-1-i):
             
             #交換
             if myList[j] > myList[j+1]:
                 tmp = myList[j]
                 myList[j]=myList[j+1]
                 myList[j+1] = tmp
                 
         #打印每一輪交換後的列表       
         for item in myList:
             print(item)
         print("=============================")
 
 print("Bubble Sort: ")
 myList = [1,4,5,0,6]
 bubbleSort(myList)
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved