冒泡排序的进阶用法

相比于一般的冒泡排序,这种进阶版的冒泡排序更加的完善。这种进阶的冒泡排序可以将任何的类型进行排序,比一般的冒泡排序更加的完备。

这里运用到了一个qsort函数的一种思想,我们qsort函数中有四个参数,我们就运用到了第4个参数–>函数指针
首先了解qsort函数的参数部分
void sqort(void
base, size_t num, size_width, int(cmp)(const void e1, const void
e2);
第一个参数 – 待排序数组的起始位置
第二个参数 — 待排序数组有几个元素
第三个参数 — 待排序数组元素大小(字节)
第四个参数 — 比较函数这个函数需要自己定义,如果e1>e2,函数返回-1;e1<e2,函数返回1;e1==e2函数返回0
默认是从小到大排序的!
**
所以我们要写一个函数来对我们待排序的数组进行判断

这是浮点型的设计函数运用于浮点型的数组

int cmp_float(const void* e1, const void* e2)
{
   
	//两种写法
	/*if (*(float*)e1 == *(float*)e2)
		return 0;
	else if (*(float*)e1 > *(float*)e2)
		return 1;
	else - 1;*/
	return (int)((*(float*)e1 - *(float*)e2));
}

这是结构体的设计函数,运用于结构体数组

int cmp_Str(const void* e1, const void* e2)
{
   
	//强制类型转化为结构体指针
	//当比较的是字符串时,使用strcmp函数
	//return ((struct Stu*)e1)->字符串 - ((struct Stu*)e2)->字符串;
	return strcmp
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值