2024年C C++最全冒泡排序实现快速排序qsort C语言,2024年最新满满的干货

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

首先祝大家新年快乐🎉 🎉 🎉!

hello✨,大家好呀,这里是原来💖 💛💙,随着文章篇幅越来越多可能有很多小伙伴们找不到自己想要看的文章,所以我就出来啦,这里附带各文章链接哈。🎁 🎁 🎁


C语言入门篇深剖篇都整理在这里了哈,进阶篇也在快赶了,用不了一周应该也就完成了,然后这里是个人主页,比点头像更好找文章哈。再是初阶的数据结构,就只剩下二叉树和八大排序了,后面会总结,链接也会放在这里哈。后面的话应该就会更c++和linux的知识了,当然,进阶的数据结构也会在c++中更新哈😜。如果你想学习c\c++方面的知识,关注博主一定会对你有所帮助哈🎁 🎁 🎁 。最后,感谢观看此篇文章的你💖,更感谢关注的你💖🎈 🎈,让我们一起加油吧!🎉 🎉 🎉


**最后是打鸡血环节:**改变的确很难,但结果值得冒险,拿出点勇气来。路还很长,现在才刚开始而已。过去无可挽回,未来可以改变。🚀 🚀 🚀

快速排序

在实现快速排序之前我们要先知道快速排序是什么。简单说其实就是可以排序各种类型的数据,比如整型,结构体等等都可以,我们这里是用冒泡排序去写的,因为目前也只学习了冒泡排序哈,后面会再有其他版本的,

这里我们看到qsort有4个参数,下面一一来解释。

基本使用

值得注意的是我们要自己实现一个比较函数,至于为什么是因为写qsort函数的人也不知道使用者要用来比较什么,又或者大到小或者小到大排序,所以需要我们自己去实现一个比较函数,因为使用者知道自己要比较的数据是什么类型的。

参数解释

qsort函数第一个参数是要比较数组的起始地址,第二个参数是数组元素个数,第三个参数是每个元素大小,第四个参数是比较函数。

模拟实现

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
#include<stdlib.h>

//这里整型是这样写的,但是比较其他数据就会变哈
int cmp_int(const void* e1,const void* e2)
{
	return (*(int*)e1 - *(int*)e2);
}

//打印函数
void Print(int arr[],int sz)
{
	int i = 0;
	for (i = 0; i < sz; i++)
	{
		printf("%d ",arr[i]);
	}
}

//交换函数
void swap(void* p1, void* p2, size_t width)
{
	int i = 0;
    //因为要交换这么多长度次,所以要for循环
	for (i = 0; i < width; i++)
	{
		char tmp = *((char*)p1 + i);
		*((char*)p1 + i) = *((char*)p2 + i);
		*((char*)p2+i) = tmp;
	}
}

void bubble_qsort(void* base, size_t num, size_t width, int(* cmp)(const void* e1, const void* e2))
{
	int i = 0;
	int j = 0;
	for (i = 0; i < num; i++)
	{
		for (j = 0; j < num-i-1; j++)
		{


![img](https://img-blog.csdnimg.cn/img_convert/f3e8a88b61b3be8d2a9a9961f3026b9c.png)
![img](https://img-blog.csdnimg.cn/img_convert/1013b9d0b85d3edf2e8fd5a229e8e87e.png)

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以添加戳这里获取](https://bbs.csdn.net/topics/618668825)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

这里获取](https://bbs.csdn.net/topics/618668825)**


**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值