【Python】Python實現常用演算法排序
阿新 • • 發佈:2018-12-04
今天去面試,給了筆試題讓寫快速排序,記不清定義了就照著記憶中的演算法寫了程式碼。結果面試的時候,說我寫的不是快排,我回答說記不清了。就問還記得哪個排序演算法,我回答說還記得氣泡排序,就讓現場寫氣泡排序。
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)
就是按著這樣的程式碼寫的,面試官說感覺有點怪。可是我回來百度了,就是這樣的。
我理解的氣泡排序是這樣的:
氣泡排序就是遍歷資料,每次只和挨著的下一個數字進行比較,如果這兩個數大小順序不對,就進行交換。
寫的是升序,所以數字越大越在後面。就是兩個數進行比較的時候,如果後一個數比當前數小,就要將兩個數交換。然後第二次迴圈的時候,最後一個就不需要再進行對比了,第三次的時候,倒數兩個數已經是排完順序的了,依次下去。