摘要:二函数的使用实例函数排序一个整形数组代码如下示例函数排序一个结构体代码如下示例张三李四王五用冒泡排序函数排序模拟一个函数代码如下示例
qsort函数
提示:以下是本篇文章正文内容,下面案例可供参考
void qsort( void *base, size_t num, size_t size, int(*cmp)(const void*,const void *) );
头文件:
函数功能:qsort()函数的功能是对数组进行排序,数组有num个元素,每个元素大小为size。
参数base : base指向数组的起始地址,通常该位置传入的是一个数组名。
参数num :num表示该数组的元素个数
参数size :size表示该数组中每个元素的大小(字节数)
参数(*cmp)(const void *, const void *):此为指向比较函数的函数指针,决定了排序的顺序。
函数返回值:无
注意:如果两个元素的值是相同的,那么他们两个的前后顺序排列是不确定的。
代码如下(示例):
#include #include int cmp_by_num(const void*e1,const void*e2){ return *(int*)e1 - *(int*) e2;}void Print(int* p, size_t sz){ size_t i = 0; for (i = 0; i < sz; i++) { printf("%d", *(p + i)); } printf("/n");}int main(){ int arr[] = { 1,2,6,9,8,5,7,4,3}; size_t sz = sizeof(arr) / sizeof(arr[0]); qsort(arr, sz, sizeof(arr[0]), cmp_by_num); Print(arr, sz);}
代码如下(示例):
#include #include struct Stu{ char name[20]; int age;};int cmp_by_name(const void* e1, const void* e2){ return strcmp(((struct Stu*)e1)->name, ((struct Stu*)e2)->name);};void Print(struct Stu* p, int sz){ int i = 0; for (i = 0; i < sz; i++) { printf("%s/t%d/n", p[i].name, p[i].age); }};int main(){ struct Stu s[3] = { {"张三",13}, {"李四",14}, {"王五",15} }; size_t sz = sizeof(s) / sizeof(s[0]); qsort(s, sz, sizeof(s[0]), cmp_by_name); Print(s, sz);}
代码如下(示例):
#include #include int cmp_by_num(const void* e1, const void* e2){ return *(int*)e1 - *(int*)e2;}void Swap(char* e1, char* e2, size_t width){ size_t i = 0; for (i = 0; i < width; i++) { char tmp = *e1; *e1 = *e2; *e2 = tmp; e1++; e2++; }}void BubbleSort(void* base, size_t num, size_t width, int (*cmp)(const void*, const void*)){ size_t i = 0; for (i = 0; i < num - 1; i++) { size_t j = 0; for (j = 0; j < num - i - 1; j++) { if (cmp((char*)base + j * width, (char*)base + (j + 1) * width) > 0) { Swap((char*)base + j * width, (char*)base + (j + 1) * width,width); } } }}void Print(int* p, size_t sz){ size_t i = 0; for (i = 0; i < sz; i++) { printf("%d", *(p + i)); } printf("/n");}int main(){ int arr[] = { 5,9,6,8,7,4,1,2,3 }; size_t sz = sizeof(arr) / sizeof(arr[0]); BubbleSort(arr, sz, sizeof(arr[0]), cmp_by_num); Print(arr, sz);}
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/119402.html
大家好,我们每天全网搜集各行各业的研究报告,了解一个行业从阅读这个行业的研报开始,今日分享目录如下: 20211006分享目录: 2021抖音电商商家经营方法论白皮书-34页.pdf 2021中国数据智能产业发展研究报告-50页.pdf 2021公益数字化转型-56页.pdf 2021年中国一线城市出行平台调研报告-77页.pdf 2021年中国内容机构(MCN)行业发展研究报告-66页.pd...
摘要:参一江湖只作为内容整理方,仅供学习使用。更多相关报告请查看参一江湖星球。 大家好,我们每天全网搜集各行各业的研究报告,了解一个行业从阅读这个行业的研报开始,今日分享目录如下: 20210906分享目录: 2021中国车险科技创新服务研究报告-45页.pdf 2021年中国家装行业数字化研...
摘要:通讯录今天我们内容是一个小项目通讯录的实现首先,我先思考一下,一个通讯录,它应该具有哪些功能。说到通讯录,我们可以打开手机的通讯录,观察一番。为了防止我们忘记数字,代表的是那项功能。 ...
大家好,我们每天全网搜集各行各业的研究报告,了解一个行业从阅读这个行业的研报开始,今日分享目录如下: 20210928分享目录: 休闲娱乐行业主题研究:本地出行,众彩纷呈-35页.pdf 休闲服务行业海南折扣观察第一期:SKU较少的GDF折扣小幅加大,其他公司相对稳定-14页.pdf 传媒行业2021年中期策略报告:从流量到留量,抓住年轻人、拥抱视频化、提升专业化-30页.pdf 传媒行业深度...
阅读 2338·2021-10-14 09:42
阅读 1109·2021-09-22 15:09
阅读 3498·2021-09-09 09:33
阅读 2968·2021-09-07 09:59
阅读 3608·2021-09-03 10:34
阅读 3502·2021-07-26 22:01
阅读 2797·2019-08-30 13:06
阅读 1145·2019-08-30 10:48