qsort函数

qsort函数:

运用填写:
第一个为数组初始地址
第二个为待排序数组的个数
第三个为每个字节的大小(建议sizeof(a[0]))
第四个为函数指针(比较函数)

比较函数:
一般来说比较函数的命名没有硬性的规定,但是我们一般还是用cmp来命名,这样方便我们的程序理解。
cmp函数的两个形参一般来说是:const void *a,const void *b
你可以理解为 前一个形参就相当于待比较数组中相对于后一个形参前面的位置,然后根据返回的 int 的值来确定两者是否需要进行一个交换。

(非官方解释)返回值:
若为0,两者不进行交换
大于0,两者进行交换
小于0,两者不进行交换

(官方解释)返回值:
大于0 elem1将被排在elem2前面
等于0 elem1 等于 elem2
小于0 elem1 将被排在elem2后面

代码:

#include<iostream>
#include<algorithm>
#include<cstdlib>

using namespace std;
int cmp(const void *a,const void *b)//a为前面那个数,b反之 
{
    int *qa=(int *)a;
    int *qb=(int *)b;
    if(*qa==*qb)return 0;
    //若是后面的数小于前面的数   a  >  b   
    if(*qb<*qa)return 1;
    else return -1; 
}
int main()
{
    int a[100],n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)scanf("%d",&a[i]);
    qsort(a+1,n-1,sizeof(a[1]),cmp);
    for(int i=0;i<n;i++)printf("%d",a[i]);
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值