快速排序(QuickSort) C語言版

2021-07-25 01:53:32 字數 597 閱讀 3114

#include 

#include

#define maxsize 20 //順序表的最大長度

typedef

int keytype; //定義關鍵字型別為整數型別

typedef

struct

redtype; //記錄型別

typedef

struct

sqlist; //順序表型別

//quicksort

int partition (sqlist &l,int low,int high)

l.r[low] = l.r[0]; //樞軸記錄到位

return low; //返回樞軸位置

}void qsort (sqlist &l,int low,int high) //對順序表l中的子串行l.r[low..high]作快速排序

}void quicksort (sqlist &l) //將順序表l作快速排序

//列印

void printsort (sqlist &l)

}//主函式

void main ()

快速排序 quick sort C

快速排序效能好壞主要在於主元的選取。下面 有兩種選主元的方式 1 每次選取當前序列的第乙個元素 2 選取選取當前序列的 首元素 中間元素 尾元素 的 中位數.核心 每次 給主元找到準確的排序位置 效率高的原因也就在於每次找的的都是準確的位置 1 選取首元素為基準 主元 的實現 includeint ...

2 快速排序(QuickSort C 實現

快速排序的雖然比較簡單,但對於比較久沒接觸的朋友來說,還是容易遺忘的,本人覺得這裡有兩個難點 1 快速排序中心思想 快速排序的思想歸納起來有的三步 任意選取序列中的乙個元素,用此元素作為 中間元素 這裡說明一下,這個 中間元素 排序後不一定剛好在序列的中間。在序列中取出所有大於 中間元素 的元素,放...

快速排序 QuickSort C語言版

快速排序的核心在於分治.分治演算法 1.認定只有乙個元素或沒有元素的陣列是有序的.2.將陣列按照乙個分界值分為左右兩部分.左面所有元素值比分界值小,右面所有元素值比分界值大或等於.3.將左右兩部分分別再分治,直到要分支的部分只有乙個元素或沒有元素,那麼整個陣列就是有序的了.部落格 include i...