欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

qsort()函数排序实例

程序员文章站 2023-12-26 16:24:16
...

qsort函数实例

#分析+代码+测试数据

分析

qsort在c++的algorithm头文件中,注意其参数的使用。比如
// 数在数组num[210]中的范围是闭区间 [0,n-1] 或者[1,n]
//对应的第一个参数num,第二个参数是n。对应的第一个参数是num+1,第二个参数是n+1.
//第三个参数写成sizeof(num[0]),数组每个元素的空间大小。
//第四个参数是自定义cmp函数,可以如下代码中这样写,亦可以

int cmp(int a,int b){
	return a>b;
}

//cmp函数返回正数则升序,返回负数则降序排列。
//如上函数,a>b则返回正数,a<b则返回负数。

代码

//复杂度O(N*logN),在基本有序的情况下效率不高

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;

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

int main(){
    int n,num[210];
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
        scanf("%d",&num[i]);

    qsort(num+1,n,sizeof(num[0]),cmp);
    for(int i=1;i<n;i++)
    printf("%d ",num[i]);
    printf("%d\n",num[n]);
}

测试数据

输入数据
5
8 3 6 4 9

输出数据
3 4 6 8 9

相关标签: qsort排序函数

上一篇:

下一篇: