C函数库qsort函数及最后一个参数的相关问题

      在学习数据结构的时候,我们会学习到很多不同的排序算法,比如说冒泡排序法,哈希表(大雾),以及快速排序。而C的函数库也给我们了一个快速排序的函数。就是我所提到的这个qsort。这个函数内部是一个写好了的快速排序算法的函数。头文件是#include<stdlib.h>。

     我们首先需要来了解一下什么是快速排序,快速排序可以说是一种基于冒泡排序的衍生算法,它是对于冒泡排序的一种改进。快速排序法是最有效的排序算法之一,对大型数组而言更是如此。它的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可以对这两部分记录继续进行排序,不断缩小数据结构,不断重复这个过程,以达到整个序列有序。这个算法我们会在我的另一个新篇(新坑)的数据结构中进行说明。我们今天要说明的是qsort()快速排序的这个算法。在ANSI原形中

void qsort(void *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *));
猛一看,这个原形还是让人耳目一新啊(大雾)。分析一下这个函数所需要的参数:第一个参数为指向要排序的数组头部的指针。因为我们并不能够确定我们要排的序列的类型,是整形,浮点数,亦或是字符串。所以这里使用的是无符号指针,这样qsort函数的第一个十级参数可以指向任何类型的数组。第二个参数为需要排序的项目量,也就是我们要进行排序的数据的多少。函数原型将该值转换为size_t类型 ,并在标准头文件中定义该整数类型。(size_t类型是sizeof返回的类型的值。这是一个无符号整数类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值