【Python 3 冒泡排序】

  • 2019 年 10 月 4 日
  • 筆記

演算法講解

冒泡排序是一種簡單直觀的排序演算法(演算法簡單,效率低)。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢"浮"到數列的頂端。

演算法程式碼實現

Python 3 程式碼實現如下,隨機生成20個數,保存到列表變數list1中,通過冒泡排序法進行排序,然後輸出排序結果:

from random import randrange  import datetime  def Bubble_sort():      list1 = []      while len(list1) < 20:  # 範圍內隨機取20個數值          list1.append(randrange(0, 1000, 3))        print('排序前數組:',list1,'n')      # 通過兩個for循環實現冒泡排序演算法,內循環一次實現找出一個最大值      for i in range(20):          for j in range(19 - i):              if list1[j] > list1[j + 1]:  # 遇到較小值前後交換                  list1[j], list1[j + 1] = list1[j + 1], list1[j]        print('冒泡排序結果:')      for j in range(1,len(list1)):          print(list1[j])    start = datetime.datetime.now()  #調用排序函數  Bubble_sort()  end = datetime.datetime.now()  print ('冒泡排序運行所用時間:',end-start)

程式碼運行結果如下: