當前位置:
首頁 > 最新 > Python3快速排序

Python3快速排序

聲明

本公眾號所有內容,均屬微信公眾號: 開源優測 所有,任何媒體、網站或個人未經授權不得轉載、鏈接、轉貼或以其他方式複製發布/發表。已經本公眾號協議授權的媒體、網站,在使用時必須註明"稿件來源微信公眾號:開源優測",違者本公眾號將依法追究責任。

Python3快速排序

概述

快速排序(Quicksort)是對冒泡排序的一種改進。

快速排序由C. A. R. Hoare在1962年提出。

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

基本過程

設要排序的數組是A[0]……A[N-1],首先任意選取一個數據(通常選用數組的第一個數)作為關鍵數據,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。

值得注意的是,快速排序不是一種穩定的排序演算法,也就是說,多個相同的值的相對位置也許會在演算法結束時產生變動。

一趟快速排序的演算法是:

代碼

# -*- coding:utf-8 -*-

__author__="苦葉子"

importrandom

"""公眾號:開源優測"""

# 隨機生成1-1000之間無序序列整數數據

defgenerator():random_data=[]foriinrange(,10):random_data.append(random.randint(1,1000))returnrandom_data

# 快速排序

defquick_sort(data_list,start,end):# 判斷是否需要進行排序ifstart>=end:returndata_list

# 設置排序基準值,這裡我們設置為第一個元素值base=data_list[start]left=start right=endwhileleft

if__name__=="__main__":print("開源優測-積微速成計劃基本功")# 生成隨機無序數據random_data=generator()# 列印無序數據print(random_data)# 插入排序length=len(random_data)sorted_data=quick_sort(random_data,,length-1)# 列印排序結果print(sorted_data)


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

淺談Python框架,初學者的不容錯過的幾個重點,你知道嗎?

TAG:Python |