码迷,mamicode.com
首页 > 其他好文 > 详细

qsort函数

时间:2015-04-06 17:21:14      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:c++

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]);
} 

qsort函数

标签:c++

原文地址:http://blog.csdn.net/qq_14949289/article/details/44902839

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!