排序 快速排序(前後指標法)

2021-10-05 23:43:46 字數 805 閱讀 9666

時間複雜度:最壞: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...