使用VC庫函式中的快速排序函式

2021-07-08 12:20:52 字數 1681 閱讀 4994



函式原型:

void qsort(void *base,size_t num,size_t width, int (__cdecl *compare )(const void *, const void *) );

第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個函式指標,表示如何比較陣列中的元素。

標頭檔案 #include

下面分別就int等整數資料,double等浮點資料,結構體和類,按指定方式這四種情況進行講解。

例項1   對int等整數資料進行排序

[cpp]view plain

copy

print?

int cmp(const

void *x, const

void *y)  

qsort(a, maxn, sizeof(a[0]), cmp);   

int cmp(const void *x, const void *y)

qsort(a, maxn, sizeof(a[0]), cmp);

maxn為陣列大小,下同

例項2   對double等浮點數進行排序

[cpp]view plain

copy

print?

int cmpdouble(const

void *x, const

void *y)  

qsort(a, n, sizeof(a[0]), cmpdouble);  

int cmpdouble(const void *x, const void *y)

qsort(a, n, sizeof(a[0]), cmpdouble);

例項3  對結構體,類等複雜資料進行排序 如

[cpp]view plain

copy

print?

struct student  

;  

struct student

;

先對年齡排序,年齡相同再按姓名排序。

[cpp]view plain

copy

print?

int cmpstudent (const

void *x, const

void *y)  

qsort(a, n, sizeof(a[0]), cmpstudent);  

int cmpstudent (const void *x, const void *y)

qsort(a, n, sizeof(a[0]), cmpstudent);

例項4     按指定方式進行排序。

如對只有大小寫字母的字串"aajkukdyubcdwyz"進行排序,要求大寫字母在前,小寫字母在後。

[cpp]view plain

copy

print?

int cmp1(const

void *x, const

void *y)  

int main()    

使用VC庫函式中的快速排序函式

函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個函式指標,表示如何比較陣列中的元素。標頭...

使用VC庫函式中的快速排序函式

下面講下vc中庫函式qsort 的用法 函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個...

使用VC庫函式中的快速排序函式

函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個函式指標,表示如何比較陣列中的元素。標頭...