快速排序 C C

2022-03-01 08:47:00 字數 878 閱讀 2929

快排演算法

快排和冒泡都是基於交換的思想,但是進行了改進,更為高效。

流程:(1)首先設定乙個分界值,通過分界值將陣列分成左右兩部分。

(2)將大於或等於分界值的資料集中到陣列右邊,小於分界值的資料集中到陣列的左邊。

(3)左右兩個部分重複上述排序。

從上述流程可以看出,這就是乙個遞迴的過程,遞迴終止即只有乙個元素

1 #include2 #include3 #include4

using

namespace

std;

5void quicksort(int *a,int left,int

right)625

}26while(a[lt]因為右半部分可能還到不了下邊界,所以需要繼續遞增

27while(a[rt]>base) rt--;//

因為左半部分可能還到不了上界,所以需要繼續遞減

28if(lt == rt) lt++; //

此處為了避免兩個邊界模糊不清

29if( left < rt ) quicksort(a,left,rt); //

遞迴對左半部分快排

30if( right > lt) quicksort(a,lt,right); //

遞迴對右半部分快排

3132}33

intmain()

3446 cout<47 quicksort(a,0,n-1

);48 cout<<"

array after sorting is:

"<49for (int i = 0; i < n; i++) cout<"";

50 cout<51return0;

52 }

C C 實現快速排序

file gm qsort.h brief 實現快速排序 author don hao date 2011 8 21 22 31 06 version email hao.limin gmail.com company modification write modifications here.if...

C C 實現快速排序

1.思想就是遞迴的分而治之,每次遞迴就做兩件事 分段,對這個段依照pivot進行粗略的排序 2.對於分好的段,求出其中位數為pivot,然後小於pivot的全都放到這個段的左邊,大於pivot的全都放到這個段的右邊,下面是實現 include include template t class qui...

C C 演算法 快速排序

氣泡排序的執行效率太低,因為每次比較相鄰的兩個數,所以時間複雜度為o n 花費的時間太長,所以為了更加的節省時間,提高程式的執行速率,我們可以採用快速排序。對於乙個數集,先把第乙個數當作基準數,然後分別從最右端和最左端向另一方向進行搜尋,以從小到大的順序為例 從右向左搜尋的,遇到比基準數小的與從左向...