排序之快速排序

2021-09-25 01:14:11 字數 654 閱讀 5165

該方法的基本思想是:

1.先從數列中取出乙個數作為基準數。

2.分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。

3.再對左右區間重複第二步,直到各區間只有乙個數

o(nlogn);

**出處:

#includeusing namespace std;

void quicksort(int a,int,int);

int main()

,k; int len=sizeof(array)/sizeof(int);

cout<<"the orginal arrayare:"<= x) // 從右向左找第乙個小於x的數

j--;

if(i < j)

s[i++] = s[j];

while(i < j && s[i]< x) // 從左向右找第乙個大於等於x的數

i++;

if(i < j)

s[j--] = s[i];

} s[i] = x;

quicksort(s, left, i - 1); // 遞迴呼叫

quicksort(s, i + 1, right);

}}

如有錯誤,歡迎指正。道路千萬條,和氣第一條。

排序之快速排序

快速排序的在內排中起到比較重要的作用,平均時間複雜度達到o nlogn 公升序快速排序 1 int partition vector vi,int start,int end 11 vi start key 12return start 13 14void quickcore vector vi,i...

排序之快速排序

有沒有既不浪費空間又可以快一點的排序演算法呢?那就是 快速排序 啦!光聽這個名字是不是就覺得很高階呢。假設我們現在對 6 1 2 7 9 3 4 5 10 8 這個10個數進行排序。首先在這個序列中隨便找乙個數作為基準數 不要被這個名詞嚇到了,就是乙個用來參照的數,待會你就知道它用來做啥的了 為了方...

排序之快速排序

快速排序原理 需要選取基準pivot值來進行陣列的低 高索引 low,high 對應陣列值進行來回比較,交換位置,相向而行。當high low時候,迴圈結束 最後通過遞迴對左右兩部分 左邊區域值低於pivot,右邊區域值高於pivot 分別遞迴操作,完成排序。不穩定排序,複雜度o nlogn 核心 ...