C语言qsort函数
qsort 是 C 标准库stdlib.h中的一个函数,用于对数组进行快速排序。
语法格式:
void qsort(void *base, size_t num, size_t size,int (*compar)(const void *, const void *));
base:指向要排序的数组的起始地址。
num:数组中元素的个数。
size:每个元素的大小(以字节为单位)。
compar:比较两个元素的函数。
比较函数:
定义:int compar(const void *a, const void *b);
如果 a 小于 b,则返回负值。
如果 a 等于 b,则返回 0。
如果 a 大于 b,则返回正值。
示例:
`#include <stdio.h>
include <stdlib.h>
// 定义比较函数
int compare(const void *a, const void *b) {//*const void :这是一个指向常量数据的通用指针(void pointer)。void *表示可以指向任何类型的数据,而const void 则进一步表明通过这个指针不能修改所指向的数据。
在函数参数中使用const void 通常用于传递任意类型的数据,同时保证这些数据不会被函数内部修改。
return ((int)a - (int)b);//(int *):这是一个类型转换操作,将一个指针转换为指向整数(int)类型的指针。
}
int main() {
int arr[] = {5, 15, 40, 30, 10};
int n = sizeof(arr) / sizeof(arr[0]);
// 使用 qsort 排序 qsort(arr, n, sizeof(int), compare); // 输出排序后的数组 for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } printf("\n"); return 0;
}
`
注意:qsort 函数在内部使用了一种快速排序(Quicksort)算法。不稳定。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)