時間複雜度:最壞:o(n^2)–>不會出現 最好:o(nlogn) 平均:o(nlogn)
空間複雜度:o(logn) 函式呼叫棧, 極端情況: o(n)–>不會出現
穩定性:不穩定
資料敏感:敏感
#include
//公升序
void
swap
(int
* array,
int i,
int j)
//三數取中
//這麼做是為了防止資料如果是有序的,快排就變成了冒泡排,時間複雜度就變成了o(n^2)
intgetmid
(int
* array,
int begin,
int end)
}else}}
//前後指標法
intpartion3
(int
* array,
int begin,
int end)
swap
(array, begin, prev)
;return prev;
}void
quicksort
(int
* array,
int begin,
int end)
intmain()
;quicksort
(array,0,
9);for
(int i =
0; i <
10; i++
)return0;
}
快速排序 前後指標法)
之前的兩篇中,為大家介紹了霍爾劃分和挖坑法劃分,這一篇,我們來看看第三種劃分方法 前後指標法。顧名思義,需要兩個指標,乙個在前乙個在後,分別用cur表示前指標,prev表示後指標 這裡的指標的意思是待排序數列的下標 依舊是這個圖,初始時,我們規定cur在prev的後乙個位置,這裡我們還是選擇第乙個數...
快速排序演算法 挖坑法 左右指標法 快慢指標法)
挖坑法,可以理解成拆東牆補西牆。這裡以陣列 4,1,7,6,9,2,8,0,3,5 為例子講解。以資料第乙個元素作為樞軸 也可以是最後乙個,看你喜好 這裡我們先把作為樞軸的4摳出來單獨放置,此時陣列變成了 口,1,7,6,9,2,8,0,3,5 這時我們要從陣列尾部開始往前找,找第乙個比4小的數字,...
快排之前後指標法 酷雲快速排序演算法v1 0 0
前後指標法 1.根據前後大小判斷陣列是否返回 2.取節點,初始節點為start,變更節點為start 3.如果初始節點比目標值大,初始節點 4.如果初始節點比目標值小,變更節點與初始節點交換,變更節點 初始節點 5.交換初始節點與目標值 public class quicksort system.o...