欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C語(yǔ)言快速排序——qsort函數(shù)詳解-創(chuàng)新互聯(lián)

? 我們?cè)谑褂妹芭菖判蚍ㄗ鲱}的時(shí)候,經(jīng)常會(huì)遇到運(yùn)算次數(shù)過(guò)多程序超時(shí)的情況,而且冒泡排序法只能對(duì)整形數(shù)組進(jìn)行排序。

創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏(yíng)平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為青田企業(yè)提供專(zhuān)業(yè)的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),青田網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

? 為了解決這些問(wèn)題!就使用qsort函數(shù)吧!

目錄

一、qsort函數(shù)使用方法

二、qsort函數(shù)使用示例

1.數(shù)組排序

2.字符數(shù)組排序

3.字符串排序

4.結(jié)構(gòu)體排序


一、qsort函數(shù)使用方法

??1.?首先qsort函數(shù)是庫(kù)函數(shù),使用前應(yīng)包含對(duì)應(yīng)頭文件#include

? 2.qsort函數(shù)的函數(shù)聲明

int qsort(void*? base,size_t? num,size_t? width,int(*compare)(const?*void e1)(const *void e2))

因?yàn)楸酒恼率?c語(yǔ)言初階文章,所以看不懂沒(méi)關(guān)系,我們直接來(lái)看使用方法

? 3.qsort函數(shù)使用

qsort(需要被排序的數(shù)組,數(shù)組元素個(gè)數(shù),每個(gè)元素大小,排序函數(shù)名)

需要被排序的數(shù)組,數(shù)組元素個(gè)數(shù),每個(gè)元素大小不需要解釋

那么排序函數(shù)是什么意思呢?

排序函數(shù)就是由qsort函數(shù)的使用者自己定義的兩個(gè)元素排大小準(zhǔn)則,我們來(lái)看一個(gè)簡(jiǎn)單的示例

int compare(const void* e1, const void* e2)
{
	int* p1 = e1;
	int* p2 = e2;
	if (*p1 >*p2)
	{
		return 1;
	}
	else if (*p1 == *p2)
	{
		return 0;
	}
	else if (*p1< *p2)
	{
		return -1;
	}
}
int compare(const void* e1, const void* e)

首先看排序函數(shù)的參數(shù) 排序函數(shù)的參數(shù)類(lèi)型?一定是const?void*

const—可以使在函數(shù)運(yùn)行的過(guò)程中?原數(shù)組的值不被改變

void—是為了提升函數(shù)普適性,強(qiáng)制規(guī)定函數(shù)參數(shù)為void*

因?yàn)橐粫?huì)要返回參數(shù)?所以函數(shù)返回類(lèi)型規(guī)定int

int* p1 = e1;
int* p2 = e2;

void*指針不能直接使用,所以創(chuàng)建兩個(gè)整形指針儲(chǔ)存原指針(被排序元素什么類(lèi)型就用什么指針)

?? ?if (*p1 >*p2)
?{
??? ?return 1;
?}
?else if (*p1 == *p2)
?{
??? ?return 0;
?}
?else if (*p1< *p2)
?{
??? ?return -1;
?}

這部分則為使用者自己定義的比較大小準(zhǔn)則,如果該情況為大于則返回一個(gè)>0的值,如果小于返回一個(gè)<0的值,如果等于,則返回0

然后qsort函數(shù)會(huì)自行對(duì)數(shù)組按照規(guī)定準(zhǔn)則進(jìn)行排序。

二、qsort函數(shù)使用示例 ? ? ? 1.數(shù)組排序
#include#includeint compare(const void* e1, const void* e2)
{
	int* p1 = e1;
	int* p2 = e2;
	if (*p1 >*p2)
	{
		return 1;
	}
	else if (*p1 == *p2)
	{
		return 0;
	}
	else if (*p1< *p2)
	{
		return -1;
	}
}
int main()
{
	int arr[10] = { 1,3,5,7,9,2,4,6,8,10 };
	qsort(arr, 10, 4, compare);
	for (int i = 0; i<= 9; i++)
	{
		printf("%d ", arr[i]);
	}
}
2.字符數(shù)組排序
#include#includeint compare(const void* e1, const void* e2)
{
	char* p1 = e1;
	char* p2 = e2;
	if (*p1 >*p2)
	{
		return 1;
	}
	else if (*p1 == *p2)
	{
		return 0;
	}
	else if (*p1< *p2)
	{
		return -1;
	}
}
int main()
{
	char arr[10] = { 'a','c','b','d','h','g','t','n' ,'w'};
	qsort(arr, 9, 1, compare);
	printf("%s", arr);
}
3.字符串排序
#include#includeint compare(const void* e1, const void* e2)//規(guī)定按首字母順序排序
{
	char* p1 = e1;
	char* p2 = e2;
	if (*p1 >*p2)
	{
		return 1;
	}
	else if (*p1 == *p2)
	{
		return 0;
	}
	else if (*p1< *p2)
	{
		return -1;
	}
}
int main()
{
	char arr1[5] = "abc";
	char arr2[5] = "bcd";
	char arr3[5] = "cdf";
	char arr4[5] = "gnm";
	char* arr[4] = { arr1,arr2,arr3,arr4 };//定義了一個(gè)指針數(shù)組來(lái)存放四個(gè)字符串?dāng)?shù)組的指針(數(shù)組名為數(shù)組第一個(gè)元素地址)
	qsort(arr, 4, 4, compare);//每個(gè)元素均為指針,指針大小為4字節(jié)
	printf("%s %s %s %s", arr1,arr2,arr3,arr4);
}
4.結(jié)構(gòu)體排序
#include#includestruct stu
{
	int grade;
	char name[20];
	char sex[10];
};
int compare(const void* e1, const void* e2)//規(guī)定按成績(jī)排序
{
	struct stu* p1 = e1;
	struct stu* p2 = e2;
	if (p1->grade >p2->grade)
	{
		return 1;
	}
	else if (p1->grade==p2->grade)
	{
		return 0;
	}
	else if (p1->grade< p2->grade)
	{
		return -1;
	}
}

int main()
{
	struct stu a = { 90,"zhangsan","man" };
	struct stu b = { 80,"lisi","man" };
	struct stu c = { 70,"wangwu","man" };
	struct stu arr[3] = { a,b,c };
	qsort(arr, 3, sizeof(a), compare);
	for (int i = 0; i<= 2; i++)
		printf("%d %s %s\n", arr[i].grade, arr[i].name, arr[i].sex);
}

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

文章名稱(chēng):C語(yǔ)言快速排序——qsort函數(shù)詳解-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.chinadenli.net/article38/dcdepp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化網(wǎng)站設(shè)計(jì)電子商務(wù)網(wǎng)站設(shè)計(jì)公司網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)