C 语言中的排序函数

您所在的位置:网站首页 c语言的sort函数 C 语言中的排序函数

C 语言中的排序函数

2024-06-16 12:25| 来源: 网络整理| 查看: 265

使用 qsort 函数对 C 语言中的整数数组进行排序 使用 qsort 函数对 C 语言中的字符串数组进行排序

本文将介绍几种在 C 语言中使用标准库排序函数的方法。

使用 qsort 函数对 C 语言中的整数数组进行排序

qsort 函数为不同的数据元素数组实现了某种通用的排序操作。也就是说,qsort 将函数指针作为第四个参数,传递给定元素数组的比较函数。在这种情况下,我们实现了 intCompare 函数来使用 qsort 比较整数组。注意,intCompare 应该具有 qsort 原型指定的类型 - int (*compar)(const void *, const void *)。因此,我们首先将 p1/p2 参数转换为 int 指针,然后再去引用它们来访问值本身。如果第一个参数小于另一个参数,比较函数的返回值必须是小于 0 的整数,如果前者大于后者,则返回大于 0 的整数,而相等则返回 0。

#include #include #include static int intCompare(const void *p1, const void *p2) { int int_a = *((int *)p1); int int_b = *((int *)p2); if (int_a == int_b) return 0; else if (int_a

输出:

jello | hello | mello | zello | aello | aello | hello | jello | mello | zello |

或者,我们可以重新实现前面的示例代码,让用户提供带有程序参数的字符串数组,然后将排序后的数组打印出来作为输出。这一次,在继续调用 qsort 之前,必须检查是否有足够的参数传递给排序。注意,stringCompare 函数直接返回 strcmp 调用的值,因为后者与 qsort 的比较函数的返回值规格相同。

#include #include #include static int stringCompare(const void *p1, const void *p2) { return strcmp(*(char *const *)p1, *(char *const *)p2); } void printStrings(char *arr[], size_t size) { for (size_t i = 0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3