欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門(mén)教程網(wǎng)!

C語(yǔ)言

當(dāng)前位置:主頁(yè) > 軟件編程 > C語(yǔ)言 >

如何使用VC庫(kù)函數(shù)中的快速排序函數(shù)

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語(yǔ)言|點(diǎn)擊: 次

函數(shù)原型:
void qsort(void *base,size_t num,size_t width,
int (__cdecl *compare )(const void *, const void *) );

第一個(gè)是數(shù)組地址,第二是數(shù)組大小,第三個(gè)是數(shù)組中每個(gè)元素的字節(jié)數(shù),最后一個(gè)是個(gè)函數(shù)指針,表示如何比較數(shù)組中的元素。

頭文件 #include <stdlib.h>
下面分別就int等整數(shù)數(shù)據(jù),double等浮點(diǎn)數(shù)據(jù),結(jié)構(gòu)體和類,按指定方式這四種情況進(jìn)行講解。

實(shí)例1、對(duì)int等整數(shù)數(shù)據(jù)進(jìn)行排序

復(fù)制代碼 代碼如下:

int cmp(const void *x, const void *y)
{
 return *(int*)x - *(int*)y;
}
qsort(a, MAXN, sizeof(a[0]), cmp);

MAXN為數(shù)組大小,下同

實(shí)例2、對(duì)double等浮點(diǎn)數(shù)進(jìn)行排序

復(fù)制代碼 代碼如下:

int cmpDouble(const void *x, const void *y)
{
 return (*(double*)x > *(double*)y ? 1 : -1);
}
qsort(a, n, sizeof(a[0]), cmpDouble);

實(shí)例3、對(duì)結(jié)構(gòu)體,類等復(fù)雜數(shù)據(jù)進(jìn)行排序

復(fù)制代碼 代碼如下:

struct Student
{
 char szName[30];
 int  nAge;
};

先對(duì)年齡排序,年齡相同再按姓名排序。
復(fù)制代碼 代碼如下:

int cmpStudent (const void *x, const void *y)
{   //先作下指針轉(zhuǎn)換,再按要求比較
 Student *pNodex = (Student*)x, *pNodey = (Student*)y;
 if (pNodex->nAge != pNodey->nAge)
  return pNodex->nAge - pNodey->nAge;
 else
  return strcmp(pNodex->szName, pNodey->szName);
}
qsort(a, n, sizeof(a[0]), cmpStudent);

實(shí)例4、按指定方式進(jìn)行排序。
如對(duì)只有大小寫(xiě)字母的字符串"AajkuKdYUBCDwyz"進(jìn)行排序,要求大寫(xiě)字母在前,小寫(xiě)字母在后。
復(fù)制代碼 代碼如下:

int cmp1(const void *x, const void *y)
{
 char *pcx = (char*)x, *pcy = (char*)y;

 bool flag1 = *pcx >= 'A' && *pcx <= 'Z';
 bool flag2 = *pcy >= 'A' && *pcy <= 'Z';

 if(flag1 == flag2)    //如果都為大寫(xiě)字母或都為小寫(xiě)字母
  return *pcx - *pcy;
 else                  //否則,誰(shuí)為大寫(xiě)字母,誰(shuí)的權(quán)值小。
  return flag1 ? -1 : 1;
}
int main()
{
 char szText[] = "AajkuKdYUBCDwyz";
 qsort(szText, strlen(szText), sizeof(szText[0]), cmp1);
 printf("%s\n", szText);
 return 0;
}

上一篇:shared_ptr線程安全性全面分析

欄    目:C語(yǔ)言

下一篇:C++ 在堆上開(kāi)辟與釋放二維、三維指針詳細(xì)解析

本文標(biāo)題:如何使用VC庫(kù)函數(shù)中的快速排序函數(shù)

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4151.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有