| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> qsort函数详解 -> 正文阅读 |
|
[数据结构与算法]qsort函数详解 |
上篇文章,笔者讲解了冒泡排序的方法,原文链接为:一个典列来带领大家了解冒泡排序思想_念君思宁的博客-CSDN博客,有意者请参考一下! 最近笔者又浅学关于qsort函数的排序方法!下面且听笔者一一道来! 不知道大家对于qsort函数了解多少!可能仅仅限制在qsort函数是快速排序的函数,至于其他的就……额,不知道了!下面请看笔者对于qsort函数的讲解!但也不敢保懂!! 下面笔者是参考部分文献得来的内容!敬请欣赏:
原文内容为: 对于qsort我们在上面考研看出来,返回值为void 类型,即:可以排序(大小排序)任意类型的数据! 下面笔者就定义:进行简单的讲解!!
1.void* base :指向待排序数组的起始位置! 2.size_t num :待排序数组的元素个数! 3.size_t size :(所占字节)待排序数组的元素大小! 4.int (*compar)(const void*,const void*)) 这个就需要我们好好进行分析一下! 我们可以将int (*compar)(const void*,const void*))? 进行分开处理!
因此,对于int (*compar)(const void*,const void*)) ,我们可以概述为:比较两个元素大小的函数指针! 回想一下:对于不同的数据类型,有着不同的比较方式!所以……qsort显现出来独一无二的作用!
因此我们可以用qsort函数来进行……比较 ! 下面请看笔者用qsort函数测试排序整型数组!请看代码!
对于上述代码,笔者只对最重要的那一部分进行简单讲解!请读者注意一下!!显而易见的就是该段代码:
对于: *(int*)e1 与? *(int*)e2; 我们再定义e1与 e2的时候,是定义的void(空类型),所以在使用之前,先将e1与 e2通过? (int*)e1 与? (int*)e2 强制类型转换为: int* 类型!然后在进行解引用操作! 对于在该段代码里面的? if 语句的内容,可以更改为:retrun? (*(int*)e1? -? *(int*)e2);? (升序)(要是想要降序,则可以对调一下) 原因在于: ?qsort函数的返回值为int整型!! 对于上述代码的运行结果为: 对于这篇文章,笔者所写内容大致到此结束!!有不同想法的读者请与笔者进行私聊!! 感激!! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 21:25:55- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |