快速排序演算法分析

2021-06-26 14:45:38 字數 416 閱讀 4639

經常在面試時會有面試官要求直接寫出快速排序演算法,因為該演算法在排序演算法中占有非常重要的地位,它排序效率高,達到o(nlogn),最壞的情況也是o(n^2),它的思想為對於乙個待排序的序列,首先隨機選取乙個元素作為樞軸,然後通過元素值的比較,將整個序列分成兩部分,前一部分所有元素都小於或等於該樞軸元素值,後一部分均大於或等於樞軸元素值。然後在分成的兩個序列裡再遞迴的執行該演算法。

源**如下:

int partition(vector& vec,int low,int high)

{ int i=low,j=high;

int x=vec[low];

while(i=x) --j;

vec[i]=vec[j];

while(i& vec,int low,int high)

{ if(low

排序演算法分析 快速排序

假設有n個元素,現在要把這些元素按照從小到大的順序進行排序,那麼演算法步驟如下,選擇中間位置的元素作為基準值 pivot value 其索引為 0 n 1 2 從第0個元素開始從左往右找到比基準值大的元素,其索引為i從第n 1個元素開始從右往左找到比基準值小的元素,其索引為j交換這兩個元素 從索引i...

快速排序演算法分析

快速排序演算法 include include void quicksort int arr,int nleft,int nright i nleft j nright int nmid nleft nright 2 int nmidval arr nmid while i j from right...

快速排序演算法分析

include stdafx.h void qsort int a,int low,int high printf s 呼叫qsort開始 n int first low intlast high int key a first 用字表的第乙個記錄作為樞軸 intm 1 while first la...