java 資料結構 快速排序

2021-07-25 04:19:29 字數 511 閱讀 2391



public static int partition(int array,int lo,int hi)

array[lo]=array[hi];

while(array[lo]<=key&&hi>lo)

array[hi]=array[lo];

}array[hi]=key;

return hi;

}public static void sort(int array,int lo ,int hi)

int index=partition(array,lo,hi);

sort(array,lo,index-1);

sort(array,index+1,hi);

}快速排序的時間複雜度為o(nlogn)

對於基準位置的選取一般有三種方法:固定切分,隨機切分和三取樣切分。固定切分的效率並不是太好,隨機切分是常用的一種切分,效率比較高,最壞情況下時間複雜度有可能為o(n2

).對於三數取中選擇基準點是最理想的一種

資料結構之排序演算法 快速排序 java

5快速排序 快排 public class quicksort partition a,0,a.length 1 print a test public void testquicksort quicksort a,0,a.length 1 print a public void quicksort...

java資料結構與演算法 快速排序

該方法的基本思想是 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。雖然快速排序稱為分治法,但分治法這三個字顯然無法很好的概括快速排序的全部步驟。因此我的對快速排序作了進一步的說明 ...

資料結構 排序 快速排序

對序列 47,31,83,91,57,18,96,16 進行快速排序 首元素為基準 第二趟排序結果是 正確答案 b 你的答案 c 錯誤 18 31 16 47 57 91 96 83 16 31 18 47 57 91 96 83 16 18 31 47 57 91 96 83 16 18 31 4...