C语言 通用排序实现以及代码详解

目录

1.题目

2.思想

3.代码逐步详解

主函数

比较函数

排序函数

4.总代码以及实现


1.题目

编写一个排序函数,实现对任意类型的数据进行排序

2.思想

通过通用排序函数,我们来更加详细理解回调函数

回调函数:定义的函数,并不会直接调用,而是在某种条件下调用

比如本文,我们要编写一个排序函数,但是具体函数要对什么样的数据来进行排序是不一定的,但我们要对一个浮点型数据排序时,我们就要调用与之相对应的比较函数。

3.代码逐步详解

我们对代码实现依次分为三个板块,一个为主函数,一个为比较板块,一个为排序板块

其中,我们的思想是排序板块是永远不变的,无论排序的数据类型是什么,在通过比较板块后你输入排序板块方式都是相同的。

主函数

如下:

int main()
{
	//float arr[10] = { 1,9,2,8,3,7,4,6,5,1 };
	char *arr[] = { "nihao", "leihou", "hi", "hello" ,"adw"}; //字符指针数组,保存的不是字符串,而是指向字符串的空间地址
	func(arr, sizeof(char*),sizeof(arr)/sizeof(arr[0]), char_compare); //定义函数,输入数组,单个字节大小,个数,和比较的函数
	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)       //逐个打印
	{
		printf("%s ", arr[i]);   //注意打印格式
	}
	system("pause");
	return 0;
}

在一开始定义需要排序的数据,可以是任意类型的数组,比如我们本次举例就用char*类型的数据

char*是字符指针数组,保存的不是字符串,而是指向字符串的空间地址。

由此

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值