数组排序——qsort函数

qsort 函数

- C语言编译器函数库自带的快速排序函数
- 头文件:<stdlib.h>
- 函数调用:(待排数组首地址,待排序元素个数,每个元素的大小,compar)

compar函数

int compar(const void * a, const void * b)
{
	当返回值 < 0 时,a 排在 b之前;
	当返回值 = 0 时,a b 位置不变;
	当返回值 > 0 时,a 排在 b之后;
}

对Int类型排序

int compar(const void *a, const void *b)
{
	return *(int *)a - *(int *)b;//升序排列
	return *(int *)b - *(int *)a;//降序排列
}	

对char类型排序

int compar(const void *a, const void *b)
{
	return *(char *)a - *(char *)b;//升序排列
}	

对字符串数组排序

int compar(const void* a, const void* b)
{
	return strcmp(*(char *)a - *(char *)b);
}	

对double类型排序

int compar(const void* a, const void* b)
{
	return *(double *)a > *(double *)b ? 1 : -1;//建议%g输出哦,可以去掉无意义的egg!
}	

详细代码展示

#include <stdio.h>
#include <stdlib.h>

int cmp(const void* a, const void* b)
{
	return *(int *)a - *(int *)b;
)

int main(void)
{
	int num[10];
	int i;
	for(i = 0; i < 10; i ++)
		scanf("%d", &num[i]);//数组元素输入
	qsort(num, 10, sizeof(num[0]), cmp);//qsort函数排序		
	for(i = 0; i < 10; i ++)
		printf("%d ", num[i]);//数组元素输出
}		

之后会将其它排序继续详解

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值