python挖坑法实现快排
生活随笔
收集整理的這篇文章主要介紹了
python挖坑法实现快排
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
快速排序
快速排序就是快
排序思路
- 取一個(gè)元素p(第一個(gè)元素),使元素p歸位;
- 列表被p分成兩部分,左邊的數(shù)一定不大于p,右邊的數(shù)一定不小于p;
- 遞歸完成排序。
Python代碼示例:
lst = [5, 7, 4, 3, 1, 2, 9, 8]def quick_sort(data, left, right):if left < right:mid = partition(data, left, right)quick_sort(data, left, mid - 1)quick_sort(data, mid + 1, right)''' 遇到問(wèn)題沒(méi)人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:579817333 尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書(shū)! ''' # 挖坑大法 # 此函數(shù)執(zhí)行結(jié)束后,左邊的數(shù)一定不大于tmp,右邊的數(shù)一定不小于tmp def partition(data, left, right):tmp = data[left]while left < right:while left < right and data[right] >= tmp:right -= 1data[left] = data[right]while left < right and data[left] <= tmp:left += 1data[right] = data[left]data[left] = tmpreturn leftquick_sort(lst, 0, len(lst) - 1)print(lst)# partition還有其它的寫(xiě)法,這里寫(xiě)的是比較簡(jiǎn)單的一種總結(jié)
以上是生活随笔為你收集整理的python挖坑法实现快排的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python list,tuple,di
- 下一篇: Python:数据编码与处理