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

【qsort】各种用法--原创

时间:2015-10-31 18:27:00      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:

                                                                     qsort--快排                                                                 

 

基本:头文件<stdlib.h>

qsort(s,n,sizeof(s[0]),cmp);

s-数组名

n-需要排序的个数

sizeof(s[0])-每个数据所占内存

cmp-判断函数

 

整数数组排序:

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

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

int main()
{
    int a[5]={3,6,1,4,8},i;
    qsort(a,5,sizeof(a[0]),cmp);
    for(i=0;i<5;i++)
    printf("%d  ",a[i]);
}

//这是从小到大排序--改变cmp里的符号(‘>’--从小到大||‘<‘--从大到小)

char类型数组排序:

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

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

int main()
{
    char a[5]={3,6,1,4,8},i;
    qsort(a,5,sizeof(a[0]),cmp);
    for(i=0;i<5;i++)
        printf("%c  ",a[i]);
}

//和int一样  只是改变cmp里的数据类型

double型 据说需要x>y?1:-1;虽然不知道为啥:

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

int cmp ( const void *a , const void *b ) 
{ 
    return *(double *)a > *(double *)b ? 1 : -1; 
} 

int main()
{
    double a[5]={3.3,6.1,1.4,4.3,8.2};
    int i;
    qsort(a,5,sizeof(a[0]),cmp);
    for(i=0;i<5;i++)
        printf("%.2lf   ",a[i]);
}


结构体排序:

 

【qsort】各种用法--原创

标签:

原文地址:http://www.cnblogs.com/zhangfengnick/p/4925884.html

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