函式原型:
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()
int cmp1(const void *x, const void *y)
int main()
使用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 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個函式指標,表示如何比較陣列中的元素。標頭...
使用VC庫函式中的快速排序函式
函式原型 void qsort void base,size t num,size t width,int cdecl compare const void const void 第乙個是陣列位址,第二是陣列大小,第三個是陣列中每個元素的位元組數,最後乙個是個函式指標,表示如何比較陣列中的元素。標頭...