C语言中的快速排序函数——qsort

本文详细介绍快速排序算法,包括qsort()函数的用法、头文件#include<stdio.h>的使用,以及如何通过compare函数进行元素比较以实现升序排列。通过实例演示如何编写compare函数并应用于整型数组排序。
摘要由CSDN通过智能技术生成

函数名

qsort();

头文件

#include<stdlib,h>

功能

对数组内的元素进行默认升序的快速排序

函数声明

void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );

//eg
//以升序为例
int compare(const void* a, const void* b) {
	int* s1 = (int*)a;
	int* s2 = (int*)b;
	return *s1 - *s2;
}

int n = 9;
int arr[n];
//假设数组全部输入了数据
qsort(arr, n, sizeof(int), compare);

buf 是将要排序的数组名,可以是字符数组,整型数组,结构体数组…只要能比较大小就行

num是数组元素的个数

size是单个元素所占的字节数,例如int 是 sizeof(int)

compare 是一个比较大小的函数,返回值为int,需要自己写出来
int compare(const void a, const void b)

a 和 b 都是void 的变量,属于弱类型,系统并不知道它们指向什么,所以使用的时候应该先强制类型转换为需要的指针类型*

如果函数compare 的第一个参数小于第二个参数,返回负值;如果等于返回零值;如果大于返回正值。函数对buf 指向的数据按升序排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值