C语言 - qsort函数详解

文章目录

  • 一.qsort函数简介
    • 1.qsort函数是C标准库库中的函数,使用时引入#include 。**
    • 2.它的函数原型是 void qsort(void* base, size_t num, size_t width, int (*compare)(const void*, const void*))
    • 3.这些参数都是什么意思?
  • 二.qsort函数的使用
    • 1.对整形数组进行排序
    • 2.对字符数组进行排序(同整形数组,将 int 改为 char 即可)
    • 3.对结构体数组进行排序(同上)
  • 三.如何进行降序排列?

一.qsort函数简介

1.qsort函数是C标准库库中的函数,使用时引入#include 。**

2.它的函数原型是 void qsort(void* base, size_t num, size_t width, int (compare)(const void, const void*))

3.这些参数都是什么意思?

base – 指向要排序的数组的第一个元素的指针
num – 表示要排序的数组的元素的个数
width – 表示数组中每个变量的大小
compare – 指向比较两个变量的函数的指针(回调函数)

二.qsort函数的使用

1.对整形数组进行排序

定义整形数组并传参
C语言 - qsort函数详解_第1张图片
cmp函数的实现
C语言 - qsort函数详解_第2张图片

2.对字符数组进行排序(同整形数组,将 int 改为 char 即可)

定义字符数组并传参
C语言 - qsort函数详解_第3张图片
cmp函数的实现
C语言 - qsort函数详解_第4张图片

3.对结构体数组进行排序(同上)

结构体数组定义和传参(这里以名字和年龄为例)
C语言 - qsort函数详解_第5张图片
cmp函数的实现
比较结构体数组中的整形
在这里插入图片描述
比较结构体数组中的字符串(由于比较字符串需用到strcmp函数,所以需引用头文件 string.h
C语言 - qsort函数详解_第6张图片

三.如何进行降序排列?

以上介绍的均为升序排序,那么如何进行降序排序?
非常简单,将 e1 和 e2 的位置互换即可。
如图所示(以整形数组为例):
C语言 - qsort函数详解_第7张图片

你可能感兴趣的:(c语言,排序算法,数据结构)