qsort函数详解

一:qsort函数了解

推荐网址:cplusplus.com

void qsort(void* base,//你要排序的数据的起始位置
           size_t num,//待排序的数据元素的个数
            size_t width,//待排序的数据元素的大小(单位是字节)
             int (* cmp)(const void* e1, const void* e2)//函数指针-比较函数
             );


_cdecl   - 函数调用约定


比较2个整形
e1指向一个数字
 e2指向另一个数字
要求
return Value(返回数字大小) Description
   <0                      e1 less than e2(小于)
   =0                      e1 equivalent e2(等于)
   >0                      e1  greater  than e2(大于)
默认qsort是从小到大排序

 二:qsort函数实现

#include<stdio.h>

#includd<stdlib.h>

int cmp_int(const void* e1, const void* e2)
{
    return (*(int*)e1 - *(int*)e2);//因为e1和e2的类型全为void*强制类型转换为int*便可以计算
}
int main()
{
    int arr[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
    int sz = sizeof(arr) / sizeof(arr[0]);
    qsort(arr, sz, sizeof(arr[0]), cmp_int);
    int i = 0;
    for ( i = 0; i < sz; i++)
    {
        printf("%d ", arr[i]);
    }

//答案0 1 2 3 4 5 6 7 8 9
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值