真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

任意類型排序

模擬qsort()函數(shù),實現(xiàn)任意類型排序:

尖山網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),尖山網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為尖山成百上千提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的尖山做網(wǎng)站的公司定做!

 qsort()簡介:

 原型:

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

base:要排序的的數(shù)組的首地址


num:要排序的元素的個數(shù)


width:元素所占的字節(jié)數(shù)


compare:函數(shù)指針,指向排序方式這個函數(shù)的指針。其中比較方式這個函數(shù)需要用戶根據(jù)自己的需要


使用qsort要調(diào)用。


實現(xiàn):

#include
#include
int compare(const void *elem1, const void *elem2)   //比較方式
{
	const int *str1 = (const int *)elem1;
	const int *str2 = (const int *)elem2;
	return *str1>*str2;                         //">"升序,“<"降序
}
void sort(void *base, size_t num,size_t byte, int(*cmp)(const void *elem1, const *elem2))
{
	char *str = (char *)base;
	int flag = 0;
	const void *p1;
	const void *p2;
	for (size_t i = 0; i < num - 1; i++)
	{
		flag = 0;
		for (size_t j = 0; j < num - 1 - i; j++)
		{
	           p1 =(const void *)(str+(j*byte));
	           p2 = (const void *)(str+(j + 1)*byte);
	           if (cmp(p1,p2))
		   {
		      for (size_t k = 0; k < byte; k++)           //按字節(jié)交換
		      {
			str[j*byte + k] = str[j*byte + k] + str[(j + 1)*byte + k];
			str[(j+1)*byte + k] = str[j*byte + k] - str[(j + 1)*byte + k];
			str[j*byte + k] = str[j*byte + k]-str[(j + 1)*byte + k];
		      }
		      flag = 1;
		}
	}
	if (!flag)
	break;
	}
}
int main()
{
	int(*cmp)(const void *elem1, const *elem2)=compare;
	int arr[4] = { 20,40,5, 4 };
	sort(arr,4,4, cmp);
	for (int i = 0; i < 4; i++)
	{
		printf("%d ", arr[i]);
	}
	printf("\n");
	system("pause");
	return 0;
}

當(dāng)前文章:任意類型排序
文章路徑:http://weahome.cn/article/pjhojd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部