欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實現的快速排序算法詳解

 更新時間:2017年08月01日 11:40:14   作者:二二三呀  
這篇文章主要介紹了Python實現的快速排序算法,結合實例形式分析了Python快速排序的原理、實現方法與相關操作技巧,需要的朋友可以參考下

本文實例講述了Python實現的快速排序算法。分享給大家供大家參考,具體如下:

快速排序基本思想是:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然后再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。

如序列[6,8,1,4,3,9],選擇6作為基準數。從右向左掃描,尋找比基準數小的數字為3,交換6和3的位置,[3,8,1,4,6,9],接著從左向右掃描,尋找比基準數大的數字為8,交換6和8的位置,[3,6,1,4,8,9]。重復上述過程,直到基準數左邊的數字都比其小,右邊的數字都比其大。然后分別對基準數左邊和右邊的序列遞歸進行上述方法。

實現代碼如下:

def parttion(v, left, right):
  key = v[left]
  low = left
  high = right
  while low < high:
    while (low < high) and (v[high] >= key):
      high -= 1
    v[low] = v[high]
    while (low < high) and (v[low] <= key):
      low += 1
    v[high] = v[low]
    v[low] = key
  return low
def quicksort(v, left, right):
  if left < right:
    p = parttion(v, left, right)
    quicksort(v, left, p-1)
    quicksort(v, p+1, right)
  return v
s = [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
print("before sort:",s)
s1 = quicksort(s, left = 0, right = len(s) - 1)
print("after sort:",s1)

運行結果:

before sort: [6, 8, 1, 4, 3, 9, 5, 4, 11, 2, 2, 15, 6]
after sort: [1, 2, 2, 3, 4, 4, 5, 6, 6, 8, 9, 11, 15]

更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對大家Python程序設計有所幫助。

相關文章

  • 用 Django 開發(fā)一個 Python Web API的方法步驟

    用 Django 開發(fā)一個 Python Web API的方法步驟

    這篇文章主要介紹了用 Django 開發(fā)一個 Python Web API的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-12-12
  • 解決tensorflow測試模型時NotFoundError錯誤的問題

    解決tensorflow測試模型時NotFoundError錯誤的問題

    今天小編就為大家分享一篇解決tensorflow測試模型時NotFoundError錯誤的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • pytorch之Resize()函數具體使用詳解

    pytorch之Resize()函數具體使用詳解

    這篇文章主要介紹了pytorch之Resize()函數具體使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • Pytorch釋放顯存占用方式

    Pytorch釋放顯存占用方式

    今天小編就為大家分享一篇Pytorch釋放顯存占用方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 一文了解Python?流程控制

    一文了解Python?流程控制

    這篇文章主要介紹了一文了解Python?流程控制,Python?中有while和for兩種循環(huán)機制,其中while循環(huán)是條件循環(huán),文章通過展開循環(huán)內容展開控制流程詳情,需要的小伙伴可以參考一下
    2022-05-05
  • python實操案例練習(七)

    python實操案例練習(七)

    這篇文章主要介紹了python實操案例練習,本文給大家分享的案例中主要任務有編寫程序實現樂手彈奏樂器、使用面向對象設計自定義類,描述出租車和家用轎車的信息,需要的小伙伴可以參考一下
    2022-02-02
  • Python裝飾器使用你可能不知道的幾種姿勢

    Python裝飾器使用你可能不知道的幾種姿勢

    這篇文章主要給大家介紹了關于Python裝飾器使用你可能不知道的幾種姿勢,文中通過示例代碼介紹的非常詳細,對大家的學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • Python爬蟲獲取豆瓣電影并寫入excel

    Python爬蟲獲取豆瓣電影并寫入excel

    這篇文章主要介紹了Python爬蟲獲取豆瓣電影并寫入excel ,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • python如何利用cv2.rectangle()繪制矩形框

    python如何利用cv2.rectangle()繪制矩形框

    cv2.rectangle這個函數的作用是在圖像上繪制一個簡單的矩形,下面這篇文章主要給大家介紹了關于python如何利用cv2.rectangle()繪制矩形框的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • 基于Python實現絲滑換裝視頻剪輯

    基于Python實現絲滑換裝視頻剪輯

    看到人家用PR什么編輯軟件做這種絲滑一鍵換裝的視頻,自己也想嘗試一下。不過PR這破玩意太難用了,還不如敲代碼來的省事。所以本文將利用Python算法實現絲滑換裝視頻,感興趣的可以了解一下
    2022-04-04

最新評論