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真是一个解放双手的东西,面向对象果然是一个好东西!

最新文章

  1. 背水一战 Windows 10 (17) - 动画: ThemeTransition(过渡效果)
  2. ABP使用及框架解析系列 - [Unit of Work part.2-框架实现]
  3. java初始化构造函数调用顺序
  4. ROS程序编辑器
  5. python获取对象信息
  6. zookeeper_04:curator
  7. 多线程中Local Store Slot(本地存储槽)
  8. Oracle更改数据库文件大小、实时增加文件容量
  9. C++设计模式:Template Method
  10. SQL Server移除事务日志后sys.master_files依然存在记录问题
  11. VM4061 layui.js:2 Layui hint: form is not a valid module
  12. 浅探网络1---tcp协议详解(三次握手和四次挥手)
  13. Webpack 入门(转)
  14. css实现table中td单元格鼠标悬浮时显示更多内容
  15. python测试开发django-25.表单提交之post注册案例
  16. python使用input()来接受字符串时一直报错“xxx is not defined”
  17. NHibernate中ISession的Flush
  18. C#中使用多线程访问Winform中控件的若干问题
  19. 使用python在WEB页面上生成EXCEL文件
  20. C#基础--之数据类型【转】

热门文章

  1. python 变量命名规范
  2. codeforces 719B:Anatoly and Cockroaches
  3. 洛谷P2327 [SCOI2005] 扫雷
  4. linux虚拟机系统的复制或克隆后续问题解决!
  5. MVC 返回图片
  6. 求一元二次方程ax^2+bx+c=0的解
  7. Practical Machine Learning For The Uninitiated
  8. Circular Sequence,ACM/ICPC Seoul 2004,UVa 1584
  9. Homebrew安装
  10. controller传值view