C C qsort 快速排序的用法

2021-08-24 22:55:33 字數 727 閱讀 6820

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 ...