c語言中排序的演算法有很多種,系統也提供了乙個函式qsort()可以實現快速排序。原型如下:
void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *));
它 根據comp所指向的函式所提供的順序對base所指向的陣列進行排序,nmem為參加排序的元素個數,size為每個元素所佔的位元組數。例 如要 對元素進行公升序排列,則定義comp所指向的函式為:如果其第乙個引數比第二個引數小,則返回乙個小於0的值,反之則返回乙個大於0的值,如果相等,則返 回0。
例:#include
#include
int comp(const void *, const void *);
int main(int argc, char *argv)
int i;
int array = ;
qsort(array, 6, sizeof(int), comp);
for (i = 0; i < 6; i ++) {
printf("%d/t", array[i]);
printf("/n");
return 0;
int comp(const void *p, const void *q)
return (*(int *)p - *(int *)q);
執行結果如下:
0 1 2 6 8 9
C C qsort 快速排序的用法
c c 語言函式庫中有很多排序函式,今天說一下qsort 快速排序函式。原始碼如下 void qsort void base,size t nmem,size t size,int comp const void const void 它根據comp所指向的函式所提供的順序對base所指向的陣列進行...
快速排序的改進 隨機快速排序
快速排序是一種高效的排序方法,但是如果我們的輸入陣列是排好序的乙個陣列,快速排序的執行時間就會變成o n 2 雖然這種情況很少會出現,但我們還是應該避免。演算法導論書籍中的修改方法 在排序方法中隨機化選取主元。根據計算,改進後的方法時間複雜度的期望為o nlgn 下面是改進後的 快速排序 publi...
快速排序 轉 快速排序的實現
總的說來,要直接默寫出快速排序還是有一定難度的,因為本人就自己的理解對快速排序作了下白話解釋,希望對大家理解有幫助,達到快速排序,快速搞定。快速排序是c.r.a.hoare於1962年提出的一種劃分交換排序。它採用了一種分治的策略,通常稱其為分治法 divide and conquermethod ...