氣泡排序法 - 使用Python (Bubble Sort)

 

插入排序法的原理是,從未排序的數列裡挑一個值(通常從最後一個開始),並將相鄰的值做比較,如數值大小與排序不符,則兩者對調,並繼續往下一個進行比較(這邊特別的是,如果大小順序是正確的,則會拿小的那一個值繼續往下比較),直到所有的值都比較且排序完成,下面直接用每個步驟氣泡排序法做的事情來讓大家瞭解。

原始數列 = [6, 5, 4, 3, 2, 1]  刷紫色是已排序的值,刷紅色是本次要比較的值。

1 次要排序的陣列  =  [6, 5, 4, 3, 2, 1],本次要比較的值 = 1
  sourceBubbleSortList = [6, 5, 4, 3, 2, 1]
  sourceBubbleSortList = [6, 5, 4, 3, 1, 2]
  sourceBubbleSortList = [6, 5, 4, 1, 3, 2]
  sourceBubbleSortList = [6, 5, 1, 4, 3, 2]
  sourceBubbleSortList = [6, 1, 5, 4, 3, 2]

2 次要排序的陣列  =  [1, 6, 5, 4, 3, 2],本次要比較的值 = 2
  sourceBubbleSortList = [1, 6, 5, 4, 3, 2]
  sourceBubbleSortList = [1, 6, 5, 4, 2, 3]
  sourceBubbleSortList = [1, 6, 5, 2, 4, 3]
  sourceBubbleSortList = [1, 6, 2, 5, 4, 3]

3 次要排序的陣列  =  [1, 2, 6, 5, 4, 3],本次要比較的值 = 3
  sourceBubbleSortList = [1, 2, 6, 5, 4, 3]
  sourceBubbleSortList = [1, 2, 6, 5, 3, 4]
  sourceBubbleSortList = [1, 2, 6, 3, 5, 4]

4 次要排序的陣列  =  [1, 2, 3, 6, 5, 4],本次要比較的值 = 4
  sourceBubbleSortList = [1, 2, 3, 6, 5, 4]
  sourceBubbleSortList = [1, 2, 3, 6, 4, 5]

5 次要排序的陣列  =  [1, 2, 3, 4, 6, 5],本次要比較的值 = 5
  sourceBubbleSortList = [1, 2, 3, 4, 6, 5]

 

下面附上氣泡排序法的範例程式 -(使用Python撰寫)

# Bubble Sort - Example

先準備一組測試數列
sampleList = [6, 5, 4, 3, 2, 1]

def bubbleSortExample(sourceBubbleSortList):
     #
找出數列長度
     listLength = len(sourceBubbleSortList)
     i = 0

     # 這裡的 i 是計算還有幾個值未排序
     while i < listLength-1:
         j = listLength - 1

         # 這邊控制的是,是哪兩個值要做比較
         while j > i :
             print(" sourceBubbleSortList = " + str(sourceBubbleSortList))

             # 比較相鄰兩個數,若數值大小不同則交換,並逐一比較,直到相鄰的數值比完為止
             if sourceBubbleSortList[j] < sourceBubbleSortList[j-1]:
                 tempNum = sourceBubbleSortList[j]
                 sourceBubbleSortList[j] = sourceBubbleSortList[j-1]
                 sourceBubbleSortList[j-1] = tempNum

             j = j - 1
         i = i + 1

     return sourceBubbleSortList

 

# 列印出結果
print(bubbleSortExample(sampleList))

 

如果覺得對你有幫助的話. 請幫小弟按個讚吧~

 

資料結構相關文章:

 

      資料結構 - Tree 的介紹

 

      插入排序法 - 使用Python(Insertion Sort)

 

      合併排序法 - 使用Python(Merge sort)

 

 

arrow
arrow
    全站熱搜

    newaurora 發表在 痞客邦 留言(0) 人氣()