1. 程式人生 > >【Python】Python實現常用演算法排序

【Python】Python實現常用演算法排序

今天去面試,給了筆試題讓寫快速排序,記不清定義了就照著記憶中的演算法寫了程式碼。結果面試的時候,說我寫的不是快排,我回答說記不清了。就問還記得哪個排序演算法,我回答說還記得氣泡排序,就讓現場寫氣泡排序。

a_list = [1,3,4,5,2,7,3,1]
list_lens = len(a_list)
for i in range(list_lens-1):
  for j in range(list_lens-i-1):
      if a_list[j] >= a_list[j+1]:
          a_list[j], a_list[j+1] = a_list[j+1], a_list[j]
      else:
          a_list[j], a_list[j + 1] = a_list[j], a_list[j+1]
print(a_list)

就是按著這樣的程式碼寫的,面試官說感覺有點怪。可是我回來百度了,就是這樣的。
我理解的氣泡排序是這樣的:
氣泡排序就是遍歷資料,每次只和挨著的下一個數字進行比較,如果這兩個數大小順序不對,就進行交換。

寫的是升序,所以數字越大越在後面。就是兩個數進行比較的時候,如果後一個數比當前數小,就要將兩個數交換。然後第二次迴圈的時候,最後一個就不需要再進行對比了,第三次的時候,倒數兩個數已經是排完順序的了,依次下去。