首页 > 代码库 > 模仿qsort() 实现一个通用排序函数:msort()
模仿qsort() 实现一个通用排序函数:msort()
github: https://github.com/youker-lxy/msort
截图:
对测试模块不是很了解,以下测试函数未实现:
test_msort.c 测试 msort.c 的所有函数
test_generate_data.c 测试 generate_data.c 的所有函数
程序中只产生了int类型的随机数据并排序,未进行其他类型的排序。
总结:
1 通用排序函数实现:
qsort()采用快排算法,传入参数为:数组首地址, 左侧下标, 右侧下标, 数组元素大小, 以及传入一个自定义比较函数的指针cmp,传入swap()和cmp()的两个参数都是const void 类型的指针, 是实现通用排序的关键。比如swap()时, 以数组元素大小为范围,从两个元素首地址处,逐个字节进行交换,而不用考虑元素类型。
2 makefile的学习使用:
为了实现,只是简单学习了如何编写makefile文件,并在该目录下直接输入命令 make
就可以生成目标执行文件。如果要删除执行文件和所有的中间目标文件,那么,只要简单地执行一下 make clean
就可以了。
模板如下:
target ... : prerequisites ...
command
...
...
- target
- 可以是一个object file(目标文件),也可以是一个执行文件,还可以是一个标签(label)。对于标签这种特性,在后续的“伪目标”章节中会有叙述。
- prerequisites
- 生成该target所依赖的文件和/或target
- command
- 该target要执行的命令(任意的shell命令)
- 在makefile中,目标文件(target)包含:目标执行文件和中间目标文件(
*.o
),依赖文件(prerequisites)就是冒号后面的那些.c
文件和.h
文件。每一个.o
文件都有一组依赖文件,而这些.o
文件又是目标执行文件的依赖文件。
模仿qsort() 实现一个通用排序函数:msort()
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。