在c語言中,有時要對陣列進行排序,除了自己造輪子外,也有自帶的函式,這就是qsort()。
qsort()使用了快速排序演算法,主要是對陣列進行排序。要使用qsort(),必須包含標頭檔案。
qsort()的原型:
void
qsort
(void
*base, size_t nitems, size_t size,
int(
*compar)
(const
void*,
const
void*)
)
compar()函式一般要自己實現, 原型如下:
int
(*compar)
(const
void
* a,
const
void
* b)
;
對陣列arr = 進行從小到大排序
**:
#include
#include
int arr=
;/* 函式體的a和b的型別,要和排序的陣列的型別保持一致*/
intcompar
(const
void
* a,
const
void
* b)
intmain()
qsort
(arr, len,
sizeof
(int
), compar)
;printf
("\n排序之後的列表:\n");
for(i=
0; i)return(0
);}
執行結果:
排序之前的列表:562
3303621
15 排序之後的列表:02
1521
3336
56
快速排序演算法C語言
快排的核心思想是分而治之,即第一步先選乙個參考數,第二步將小於參考數的數放左邊,大於該參考數的數放右邊,第三步分別對左邊部分的數和右邊部分的數再進行快排遞迴呼叫。c語言 include void quick sort int a,int p,int r int partition int a,int...
快速排序演算法 C語言
參考文章 include include 隨機找出乙個數 通常就拿陣列第乙個資料就行 把它插入乙個位置,使得它左邊的數都比它小,它右邊的資料都比它大,這樣就將乙個陣列分成了兩個子陣列,然後再按照同樣的方法把子陣列再分成更小的子陣列,直到不能分解為止。它也是分治思想的乙個經典實驗 歸併排序也是 舉例說...
c語言快速排序演算法
每次排序的時候設定乙個基準點,將小於等於基準點的數全部放到基準點的左邊,將大於等於基準點的數全部放到基準點的右邊。includevoid quicksort int a,int left,int right int temp a left temp就是基準 int i left int j righ...