C语言中排序的算法有很多种,系统也提供了一个函数qsort()可以实现快速排序。原型如下:

  void qsort(void *base, size_t nmem, size_t size, int (*comp)(const void *, const void *));

  它根据comp所指向的函数所提供的顺序对base所指向的数组进行排序,nmem为参加排序的元素个数,size为每个元素所占的字节数。例如要 对元素进行升序排列,则定义comp所指向的函数为:如果其第一个参数比第二个参数小,则返回一个小于0的值,反之则返回一个大于0的值,如果相等,则返 回0。

<本文中排序都是采用的从小到大排序>

一、 对int类型数组排序

int num[100]; Sample: int cmp ( const void *a , const void *b ) { return *(int *)a - *(int *)b; } qsort(num,100,sizeof(num[0]),cmp);
二、对char类型数组排序(同int类型)

char word[100]; Sample: int cmp( const void *a , const void *b ) { return *(char *)a - *(int *)b; } qsort(word,100,sizeof(word[0]),cmp);
三、对double类型数组排序(特别要注意)

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

四、对结构体一级排序

struct In { double data; int other; }s[100] //按照data的值从小到大将结构体排序,关于结构体内的排序关键数据data的类型可以很多种,参考上面的例子写 int cmp( const void *a ,const void *b) { return (*(In *)a)->data > (*(In *)b)->data ? 1 : -1; } qsort(s,100,sizeof(s[0]),cmp);

五、对结构体二级排序

struct In { int x; int y; }s[100]; //按照x从小到大排序,当x相等时按照y从大到小排序 int cmp( const void *a , const void *b ) { 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; } qsort(s,100,sizeof(s[0]),cmp);

C++ qsort用法相关推荐

  1. qsort 用法详解

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

  2. sort和qsort函数的用法

    转自:http://blog.csdn.net/gneveek/article/details/7988062 做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排 ...

  3. C语言sort和qsort函数的用法

          做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对 ...

  4. qsort函数和sort函数

      做ACM题的时候,排序是一种经常要用到的操作.如果每次都自己写个冒泡之类的O(n^2)排序,不但程序容易超时,而且浪费宝贵的比赛时间,还很有可能写错.STL里面有个sort函数,可以直接对数组排序 ...

  5. 排序函数qsort和sort那点事

    目录 前言 qsort函数(c语言用) 各参数及其说明 qsort用法实例 sort函数(用于c++) sort模板及其参数说明 sort实例 注意 : 前言 咱们初学编程的可能最先接触的算法就是排序 ...

  6. 排序算法模板(C语言版)

    1.快速排序 //By LYLtimvoid swap(int *a, int *b) {int t = *a;*a = *b;*b = t; }void QSort(int l, int r) {i ...

  7. LeetCode:面试题40. 最小的k个数

    40. 最小的k个数 题目: 解题思路: 源码: 题目: 解题思路: 1.快速排序: 2.堆排序: 详细解释看leetcode的官网 源码: int comp(void *a,void *b){int ...

  8. qsort()的用法

    文章目录 1 qsort()的用法 1.1 qsort()函数原型 1.2 qsort()示例代码 1 qsort()的用法 1.1 qsort()函数原型 #include <stdlib.h ...

  9. qsort()与sort的用法(收藏)

    sort()函数是C++中的排序函数其头文件为:#include<algorithm>头文件: qsort()是C中的排序函数,其头文件为:#include<stdlib.h> ...

最新文章

  1. MySql入门使用:登录及简单创建查询表
  2. 使用nginx动静分离后,druid被拦截的解决方法
  3. Node.js与Sails~Model数据模型
  4. Linux基础1之磁盘与分区
  5. ajax原理总结,Ajax原理
  6. 【Opencv系列】之显示图像以及使用鼠标截取图像局部区域进行放大
  7. std::kill_dependency
  8. 【每日算法Day 92】经典面试题:编辑距离
  9. 【韦东山嵌入式Linux】Linux命令进阶笔记
  10. python一阶差分_如何用Python对数据进行差分
  11. stm32软件模拟i2c通讯读取lm75a温度
  12. 程序员软考真题__专项:数据结构与算法 02
  13. 华为 Gauss数据库十问
  14. ABP文档 - Mvc 控制器
  15. Echarts13-- 多条纵轴下控制背景线条数
  16. 高博14讲:第七讲中g20报错
  17. 主题 07:如何进行 Java 系统性能优化(下)
  18. stm32无源蜂鸣器定时器_stm32定时器实现PWM输出控制无源蜂鸣器(HAL)
  19. ArcHydro介绍
  20. Python入门 —— 03GUI界面编程

热门文章

  1. 2022Q3消费级AR眼镜市场季度分析:国产品牌纷纷发力,市场全面启航
  2. Spark 连接hive local
  3. 【图像算法】pytesseract简单实现图片数字识别
  4. go语言数据类型之切片slice
  5. 他是阿里年头最久的越南小二,从中供铁军学到地推秘诀
  6. html颜色趋势,预测2015年网页设计配色趋势(4)
  7. 【语音隐藏】基于matlab小波变换DWT结合离散余弦变换DCT音频数字水印嵌入提取【含Matlab源码 2131期】
  8. python查找第k大的数_寻找数组中第K大的数
  9. 使用matlab对图像进行傅里叶变换
  10. docker 开机自启动容器docker运行自启动