快速排序算法理解-python
生活随笔
收集整理的這篇文章主要介紹了
快速排序算法理解-python
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
目錄
- 快速排序定義
- 舉例
- 代碼
快速排序定義
定義一個基準值(通常是第一個),將大于基準值的放在右邊,小于基準值的放在右邊。
舉例
以2 1 9 6 7進行排序:
假設以2作為基準數,大的放右側,小的放左側
2 1 9 6 7
1 2 9 6 7 第一次比較
再以2后面的第一個數9作為基準數,因為9左側的已經排好了
1 2 9 6 7
1 2 6 9 7第一次排序
1 2 6 7 9第二次排序
代碼
def fast_sort(data):if len(data) >= 2:mid = data[0] # 選取第一個數基準值left, right = [], [] # 定義基準值左右兩側的列表data.remove(mid) # 從原始數組中移除基準值for num in data:if num >= mid: #大于基準值的放右邊right.append(num)else:left.append(num) #小于基準值的放左邊return fast_sort(left) + [mid] + fast_sort(right)else:return dataarray = [2, 1, 9, 6, 7] print(fast_sort(array))運行結果:
參考:https://zhuanlan.zhihu.com/p/81434337
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
總結
以上是生活随笔為你收集整理的快速排序算法理解-python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sys.dm_exec_query_st
- 下一篇: 递归算法(python),汉诺塔问题,斐