C語言實現快速排序

2021-09-13 23:18:59 字數 661 閱讀 6392

對乙個整數序列進行快速排序地方法是:在待排序地整數序列中取第乙個數作為基準值,然後根據基準值進行劃分,從而將待排序列劃分為不大於基準值者(稱為左子串行)和大於基準值者(稱為右子串行),然後再對左子串行和右子串行分別進行快速排序,最終得到非遞減地有序序列。

函式quicksort(int a,int n)實現了快速排序,其中,n個整數構成地待排序列儲存在陣列元素a[0]~~a[n-1]中。

#includevoid quicksort(int a,int n) 

if(i < j)

//不大於基準值者保持在原位置

while(i < j && a[i] <= pivot)

if(i < j)

} a[i] = pivot; //基準元素歸位

C語言實現快速排序

快速排序,是氣泡排序的改進,通過尋找 中間元素 在一趟排序中,把比 中間元素 小的數放到左邊,比 中間元素 大的數放到右邊,如此遞迴,最終得到排序結果。include define num 5 void quick sort int a,int left,int right void swap in...

c語言實現快速排序

快速排序使用分治法 divide and conquer 策略來把乙個序列 list 分為兩個子串行 sub lists 步驟為 從數列中挑出乙個元素,稱為 基準 pivot 重新排序數列,所有元素比基準值小的擺放在基準前面,所有元素比基準值大的擺在基準的後面 相同的數可以到任一邊 在這個分割槽結束...

快速排序 C語言實現

以前使用rm時,ruby指令碼提供乙個sort函式,可以把陣列進行排序,後來得知採用的演算法是快速排序。隨著資料結構課程的學習,快速排序如今也不再神秘,如下 using namespace std void quicksort int a,int low,int high int first low...