快速排序法1

2021-08-29 17:33:06 字數 680 閱讀 9090

方法1:

public class quicksort ;

public static void main(string args)

/*** 快速排序主迴圈體,主要利用乙個可變陣列list

* 把作為參考的基準數先放到list中,然後跟陣列一段區間內的數

* 比較,大的放到list末尾,小的就放到這個基準數的左邊

* @param i 陣列區間的起始座標

* @param j 陣列區間的終止座標

*/public void quicksort(int i, int j)else

if(left == right)

if(t < n[i])else

i += 1;

j -= 1;

}//到此時temp裡面的順序就排成了左邊都小於t,右邊都大於t

for(int k = 0; k < temp.size(); k++)

//以t為分界線再分別對左邊和右邊進行劃分,這樣逐級進行最終將分成若干對最小的兩個數值比較

//t的左邊在原陣列裡的範圍

if(left > 1)

//t的右邊在原陣列裡的範圍

if(left + 1 < length -1)

}public void out(int j)

system.out.println();}}

快速排序法

一 快速排序演算法的基本特性 時間複雜度 o n lgn 最壞 o n 2 空間複雜度 o n lgn 不穩定。快速排序是一種排序演算法,對包含n個數的輸入陣列,平均時間為o nlgn 最壞情況是o n 2 通常是用於排序的最佳選擇。因為,基於比較的排序,最快也只能達到o nlgn c void q...

快速排序法

include stdafx.h include vos.h define table mid machine name midmachine define table midmach colname id id define table midmach colname ip ip define t...

快速排序法

快速排序法思想 在待排序的n個資料中取第乙個數字為基準數,陣列最前面放乙個標桿,陣列最後麵放乙個標桿,通過基準數和標桿 i,j 出的數進行比較,實現每次排序完時候,共三組數,不大於基準數 基準數 不小於基準數 舉例說明 5 i 4,6,8,3,9,2 j 基準數5 標桿 i 指向5位置,標桿 j 指...