<option id="mwy0y"><strong id="mwy0y"></strong></option>
  • <ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <ul id="mwy0y"></ul>
  • <del id="mwy0y"><dfn id="mwy0y"></dfn></del><ul id="mwy0y"><sup id="mwy0y"></sup></ul>
  • <abbr id="mwy0y"></abbr>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:長沙千鋒IT培訓  >  技術干貨  >  python 快速排序

    python 快速排序

    來源:千鋒教育
    發布人:xqq
    時間: 2023-11-06 12:09:19

    原理

    快速排序使用分治法(Divideandconquer)策略來把一個序列(list)分為兩個子序列(sub-lists)。

    步驟

    從數列中挑出一個元素,稱為”基準”(pivot),

    重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的后面(相同的數可以到任一邊)。在這個分區結束之后,該基準就處于數列的中間位置。這個稱為分區(partition)操作。

    遞歸地(recursive)把小于基準值元素的子數列和大于基準值元素的子數列排序。

    代碼

    普通版

    defquick_sort(list):

    less=[]

    pivotList=[]

    more=[]

    #遞歸出口

    iflen(list)<=1:

    returnlist

    else:

    #將第一個值做為基準

    pivot=list[0]

    foriinlist:

    #將比急轉小的值放到less數列

    ifi

    less.append(i)

    #將比基準打的值放到more數列

    elifi>pivot:

    more.append(i)

    #將和基準相同的值保存在基準數列

    else:

    pivotList.append(i)

    #對less數列和more數列繼續進行排序

    less=quick_sort(less)

    more=quick_sort(more)

    returnless+pivotList+more

    咳咳,下面這段代碼出自《Pythoncookbook第二版》傳說中的三行實現python快速排序。

    defqsort(arr):

    iflen(arr)<=1:

    returnarr

    else:

    pivot=arr[0]

    less=[xforxinarr[1:]ifx

    greater=[xforxinarr[1:]ifx>=pivot]

    returnqsort(less)+[pivot]+qsort(greater)

    當然還有一行語法糖版本:

    qs=lambdaxs:((len(xs)<=1and[xs])or[qs([xforxinxs[1:]ifx=xs[0]])])[0]

    是不是感受到了Python的魅力?

    以上內容為大家介紹了python快速排序,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    python實現WSGI的框架

    2023-11-13

    python打開文本文件有哪些方法?

    2023-11-13

    python使用loguru操作日志

    2023-11-13

    最新文章NEW

    python-=是什么意思

    2023-11-13

    pythonre是什么?

    2023-11-13

    python列表追加元素出錯的解決

    2023-11-13

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>