定義快排方法
接收引數:原始列表,起始位置,終止位置
判斷是否符合快排條件,當起始下標與終止下標相等時,代表只有乙個元素,無法排序,退出
一,初始化資料
起始下標
終止下標
參考值,中間值
二,迴圈比較中間值,並進行下標的值互換,條件為起始下標小於終止下標
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為中心,兩邊分別存放比其大或者小的值,依次 迭代進行劃分,最終完成排序 這裡一定要注意指標滑動的方...