基於快速排序對陣列進行排序,陣列元素可以是結構體。
qsort屬於內建函式,需要包含標頭檔案 stdlib.h
void qsort( void *ptr, size_t count, size_t size,int (*comp)(const void *, const void *) );
/**void *ptr:空指標, 指向需要排序的陣列
size_t count:陣列元素個數,size_t在32位機器上unsigned int(4byte),64位機器上unsigned long(8byte)
size:陣列元素的位元組數大小,通常用sizeof()來計算,平台不同,同一型別的變數佔據的位元組數可能不用,增強可移植性
int (*comp)(const void *, const void *) : 函式指標,將函式名作為引數,該函式的形參的型別均為const void *,函式外表是一樣的,內容卻有所不同,返回值型別相同
**/
指明具體的比較物件
int cmp(const void *a, const void *b); // 自定義函式內容,若果a值大於b值,返回1,
struct node s[100];
int cmp(const void *a, const void *b);
用於結構體內有多個成員時,當x相同時,比較y,以此類推即可。
struct node s[100];
int cmp(const void *a, const void *b);
#include #include #include int compare_ints(const void* a, const void* b)
int main(void)
; int size = sizeof ints / sizeof *ints;
qsort(ints, size, sizeof(int), compare_ints);
for (int i = 0; i < size; i++)
printf("\n");
}
C語言qsort函式的使用
qsort函式必須是對於連續的記憶體的資料進行排序,不能對鍊錶進行排序 定義 qsort 基本快速排序的方法,每次把陣列分成兩部分和中間的乙個劃分值,而對於有多個重複值的陣列來說,基本快速排序的效率較低,且不穩定 整合在c語言庫函式裡面的qsort函式,使用三路劃分的方法解決排序這個問題。所謂三路劃...
qsort函式的使用 C語言
qsort函式是一種可以實現多種型別資料比較的函式,可int,可float,可double等等 void qsort void base,int nelem,int width,int fcmp const void const void 函式引數介紹 1,要比較的陣列的位址,2.陣列的個數,3.陣...
C語言qsort函式的使用
函式原型 void qsort void base,int nelem,int width,int fcmp const void const 標頭檔案 include base 要排序的陣列 nelem 需要排序的長度 width 每個陣列元素的大小 cmp 比較函式 int型別的排序 int c...