排序演算法 快速排序 python 0913

2021-10-09 10:26:01 字數 617 閱讀 7759

定義快排方法

接收引數:原始列表,起始位置,終止位置

判斷是否符合快排條件,當起始下標與終止下標相等時,代表只有乙個元素,無法排序,退出

一,初始化資料

起始下標

終止下標

參考值,中間值

二,迴圈比較中間值,並進行下標的值互換,條件為起始下標小於終止下標

1,判斷終止下標的值如果大於等於參考值,則終止下標左移減一

2,跳出判斷後,互換資料,終止下標值賦給起始下標

3,判斷起始下標的值,如果小於參考值,則起始下標右移加一

4,跳出判斷後,互換資料,起始下標的值賦給終止下標

三,退出迴圈,當前狀態一定是起始下標與終止下標相等

中間值的位置下標已確定,即當前的起始下標值或終止下標值

遞迴進行新的排序,以中間值為分界線,把左邊的,右邊的再次進行排序,直到不符合排序的條件

python排序演算法 三 快速排序

快速排序 iflen data 2 遞迴入口及出口 mid data 0 選取基準值,也可以選取第乙個或最後乙個元素,也可以選擇中間的值 left,right 定義基準值左右兩側的列表 data.remove mid 從原始陣列中移除基準值 for num in data if num mid el...

Python排序演算法之快速排序

從列表中抽取乙個元素p 假定為第乙個 使p歸位,保證左邊的元素都比p小,右邊的元素都比p大。再遞迴呼叫完成排序 最壞情況 o n 2n 2 n2 平均情況 o nlogn 最好情況 o nlogn 最壞情況 o n 平均情況 o logn 不穩定 較複雜 一開始,從列表中隨機抽取乙個數與第乙個元素互...

排序演算法 快速排序Python實現

coding utf 8 file quick sort.py author zhang san time 2020 7 17 18 25 des 快速排序 每次選擇乙個pivot,然後以這個pivot為中心,兩邊分別存放比其大或者小的值,依次 迭代進行劃分,最終完成排序 這裡一定要注意指標滑動的方...