C++ qsort在"iostream" c在头文件stdlib.h中,strcmp在string.h中。下列例子默认从小到大排序即(a>b返回>0),反之从小到大排序

1、对int类型数组排序

int num[100];
int cmp ( const void *a , const void *b )
{
return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);

2、对char类型数组排序(同int类型)

char strs[100];
int cmp( const void *a , const void *b )
{
return *(char *)a - *(int *)b;
}
qsort(strs,100,sizeof(strs[0]),cmp);

3、对double类型数组排序(特别要注意)

double dbs[100];
int cmp( const void *a , const void *b )
{
return *(double *)a > *(double *)b ? 1 : -1;
}
qsort(dbs,100,sizeof(dbs[0]),cmp);

4、对结构体一级排序

struct d
{
int a;
}arr[100]
int cmp( const void *a ,const void *b)
{
  return (*(d *)a)->a > (*(d *)b)->b ? 1 : -1;
}
qsort(arr,100,sizeof(arr[0]),cmp);

5、对结构体二级排序

struct d
{
int x;
int y;
}arr[100];
//按照x从小到大排序,当x相等时按照y从大到小排序
int cmp( const void *a , const void *b )
{
struct d *c = (d *)a;
struct d *e = (d *)b;
return c->x != e->x?c->x - e->x:return e->y - c->y;
}
qsort(d,100,sizeof(d[0]),cmp);

6、对字符串进行排序

struct dict{
char str[100];
}dicts[100]
int cmp ( const void *a , const void *b )
{
  return strcmp( (*(dict *)a)->str , (*(dict *)b)->str );
}
qsort(dicts,100,sizeof(dicts[0]),cmp);

c++ qsort函数应用的更多相关文章

  1. qsort函数、sort函数【转】

    http://blog.163.com/yuhua_kui/blog/static/9679964420142195442766/ 先说明一下:qsort和sort,只能对连续内存的数据进行排序,像链 ...

  2. C中的qsort函数和C++中的sort函数的理解与使用

    一.qsort()函数 原型:_CRTIMP void __cdecl qsort (void*, size_t, size_t,int (*)(const void*, const void*)); ...

  3. C语言中qsort函数的应用

    qsort函数包含在<stdlib.h>的头文件里,本文中排序都是采用的从小到大排序 一.对int类型数组排序 ]; int cmp ( const void *a , const voi ...

  4. C语言中qsort函数用法

    C语言中qsort函数用法-示例分析    本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...

  5. qsort函数详解

    C语言标准库函数 qsort 详解 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 原文链接:http://www.slyar.c ...

  6. qsort函数

    qsort函数用法举例 #include <stdio.h> #include <stdlib.h> #include <string.h> //数字比较函数 in ...

  7. qsort函数用法【转】

    qsort函数用法 qsort 功 能: 使用快速排序例程进行排序  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(con ...

  8. qsort函数用法

    qsort函数用法   qsort 功 能: 使用快速排序例程进行排序 用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(co ...

  9. qsort函数用法(转)

    qsort函数用法   qsort 功 能: 使用快速排序例程进行排序  用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(c ...

  10. C语言qsort函数用法

    qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. ...

随机推荐

  1. 1. LVS概述

    1.LVS介绍 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能 2.LVS组成 LVS由2 ...

  2. java中用activiti插件连接mysql数据库,自动建表过程中,在配置mysql架包路径“org.activiti.engine.ActivitiException: couldn't check if tables “

    java中用activiti插件连接mysql数据库,出现错误: org.activiti.engine.ActivitiException: couldn't check if tables are ...

  3. zeromq实践

    zeromq简介 zeroMQ不是TCP,不是socket,也不是消息队列,而是这些的综合体. ZeroMQ以嵌入式网络编程库的形式实现了一个并行开发框架(concurrency framework) ...

  4. swoole_process模拟耗时操作

    一例串行阻塞操作 <?php $start = time(); $tasklists = [ '/root/文档/longtale1.txt', '/root/文档/longtale2.txt' ...

  5. guava的一些用法

    package guavaTest; import com.google.common.base.CharMatcher; import com.google.common.base.Joiner; ...

  6. Mysql历史版本下载地址

    Mysql历史版本下载地址:http://downloads.mysql.com/archives/community/

  7. File上次文件找不到文件相对绝对路径

    我的问题是因为文件的相对绝对路径上面有中午字符,把上面的中午字符全改为英文或者数字加特殊字符形式都可以

  8. 【Python之路】特别篇--ECMA对象、DOM对象、BOM对象

    ECMA对象 从传统意义上来说,ECMAScript 并不真正具有类.事实上,除了说明不存在类,在 ECMA-262 中根本没有出现“类”这个词. ECMAScript 定义了“对象定义”,逻辑上等价 ...

  9. HDU 3826 Squarefree number ( 唯一分解定理 )

    题目链接 题意 : 给出一个数.问其能不能被任何一个平方数整除.如果可以则输出 No 即不是 Square-free Number .否则输出 Yes 分析 : 首先 N 有 1e18 那么大.不能暴 ...

  10. POJ2176 Folding

    POJ2176 Folding 描述 给定一个长度不超过100的字符串,求其"压缩"后长度最短的字符串.如有多个,输出任意即可. 其中对于一个字符串\(str\)的"压缩 ...