qsort 

用 法: void qsort(void *base, int nelem, int width, int (*fcmp)(const void *,const void *));   

各参数:1 待排序数组首地址 2 数组中待排序元素数量 3 各元素的占用空间大小 4 指向函数的指针

     int fcmp ( const void *a , const void *b )

    { return *(int *)a - *(int *)b; }

    (注:当fcmp返回-1,则a会被排在b的前面,返回1,则b会被排在a的前面,返回0说明a==b)

例程:(仅显示返回值,且默认从小到大排序)

一、对int类型数组排序

  return *(int *)a - *(int *)b;

二、对char类型数组排序

   return *(char *)a - *(int *)b;

三、对double类型数组排序(严格上说double元素不可能相等)

   return *(double *)a > *(double *)b ? 1 : -1;

四、对结构体一级排序

  令有结构体:struct In { double data; int other; }s[100]

  return (*(In *)a).data > (*(In *)b).data ? 1 : -1; 

五、对结构体二级排序

  令有结构体:struct In { int x; int y; }s[100];

  //按照x从小到大排序,当x相等时按照y从大到小排序

  struct In *c = (In *)a; struct In *d = (In *)b;

  if(c->x != d->x)

          return c->x - d->x;

  else

          return d->y - c->y;

六、对字符串进行排序

  return strcmp( *(char *)a , *(char *)b);

  参考地址:http://www.cnblogs.com/syxchina/archive/2010/07/29/2197382.html

最近会多学一点模板和STL,我发现STL真是一个解放双手的东西,面向对象果然是一个好东西!

快速排序模板qsort(转载)的更多相关文章

  1. 高斯消元 分析 && 模板 (转载)

    转载自:http://hi.baidu.com/czyuan_acm/item/dce4e6f8a8c45f13d7ff8cda czyuan 先上模板: /* 用于求整数解得方程组. */ #inc ...

  2. android小知识之注释模板(转载)

    设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元 ...

  3. Angular系列---- AngularJS入门教程03:AngularJS 模板(转载)

    是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模 ...

  4. Angular系列----AngularJS入门教程02:静态模板(转载)

    为了说明angularJS如何增强了标准HTML,我们先将创建一个静态HTML页面模板,然后把这个静态HTML页面模板转换成能动态显示的AngularJS模板. 在本步骤中,我们往HTML页面中添加两 ...

  5. Angular系列----AngularJS入门教程01:AngularJS模板 (转载)

    是时候给这些网页来点动态特性了——用AngularJS!我们这里为后面要加入的控制器添加了一个测试. 一个应用的代码架构有很多种.对于AngularJS应用,我们鼓励使用模型-视图-控制器(MVC)模 ...

  6. C语言自带的快速排序(qsort)函数使用方法

    感觉打快排太慢了,找到了c语言自带的函数.这函数用起来没c++的方便,不过也够了. 函数名称:qsort,在头文件:<stdlib.h>中 不多说,上代码: #include <st ...

  7. 浅谈SharePoint 2013 站点模板开发 转载自http://www.cnblogs.com/jianyus/p/3511550.html

    一直以来所接触的SharePoint开发,都是Designer配合Visual Studio,前者设计页面,后者开发功能,相互合作,完成SharePoint网站开发.直到SharePoint 2013 ...

  8. smarty模板(转载)

    一.smarty的程序设计部分: 在smarty的模板设计部分我简单的把smarty在模板中的一些常用设置做了简单的介绍,这一节主要来介绍一下如何在smarty中开始我们程序设计.下载Smarty文件 ...

  9. ACM模板(转载)

    转载自:https://blog.csdn.net/f_zyj/article/details/51594851 创建自:https://blog.csdn.net/ZDL_0908/article/ ...

随机推荐

  1. 【前端】Sublime text3 插件LiveReload 实现实时预览

    1.首先要安装插件LiveReload Sublime text3. 菜单 preferences->packages control,输入install.. 回车,输入LiveReload回车 ...

  2. Oracle同义词创建及分配用户创建同义词权限

    (1)--授权某个用户crate synonym的权限,若用户名为scott grant create synonym to scott(2)--创建同义词 create [or replace] s ...

  3. mysql中的having

    from子句后面可以用where选择行,group by子句后面可以用having子句选择行, having中条件的定义和where中很相似,但是having中可以直接用聚合函数,但是where中不能 ...

  4. codeforces 715B:Complete The Graph

    Description ZS the Coder has drawn an undirected graph of n vertices numbered from 0 to n - 1 and m ...

  5. BZOJ4241 历史研究

    Description IOI国历史研究的第一人——JOI教授,最近获得了一份被认为是古代IOI国的住民写下的日记.JOI教授为了通过这份日记来研究古代IOI国的生活,开始着手调查日记中记载的事件. ...

  6. 使用python来调试串口

    串口模块的波特率比较特别,找了几个串口工具都不支持...所以,干脆用python自己来写了,其实已经好奇好久了,别人的工具各种不顺手. 需要pyserial的支持,兼容各种平台,不需要新编译二进制文件 ...

  7. c++ struct的两个注意点

    1.C++的结构体变量在声明的时候可以省略struct,在c中这样是不可以的,例子如下 #include<iostream> #include<string> using na ...

  8. ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)

    http://www.cnblogs.com/zyqgold/archive/2010/11/22/1884779.html 在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送 ...

  9. jquery------.cycle的使用

    代码下载地址:http://malsup.github.io/jquery.cycle.all.js 把里面的代码复制到jquery.cycle.all.js里面 index.jsp <scri ...

  10. 转 vagrant package[打包命令]详解

    转 vagrant package[打包命令]详解   vagrant的一个非常重要的功能就是在你的同事之间分享你的box从而使大家的开发环境保持同步,打包[package]正是实现这一功能的关键所在 ...