1.C标准库函数qsort()

qsort函数包含在#include<stdlib.h>中

函数声明:

void qsort( void*base, size_t nitems, size_t size, int(*compar)(const void*, const void*) )
  • base——指向要排序数组的第一个元素的指针
  • nitems——由base指向的数组中元素的个数
  • size——数组中每个元素的大小,以字节为单位
  • compar——用来比较两个元素的函数,即函数指针(回调函数)
int compar(const void *a, const void *b)
{return *(int *)a - *(int *)b;
}

①compar函数返回值小于0,那么a所指向元素会被安排在b所指元素的左面(升序)
②compar函数返回值等于0,那么a所指向元素与b所指元素的顺序不确定
③compar函数返回值大于0,那么a所指向元素会被安排在b所指元素的右面(降序)

2.C++排序函数sort()

sort函数包含在 #include < algorithm >中

语法描述为:

sort(begin, end)    //begin,end表示一个范围,分别为待排序数组的首地址和尾地址

sort函数默认为升序。

(1)自定义compare函数

用含3个参数的sort:

sort(begin, end, compare)    //最后一个参数compare表示比较的类型
bool compare(int a, int b)
{return a<b;     //升序排序,如果改为return a>b,则为降序
}
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<functional>
using namespace std;bool compare(int a, int b)
{return a<b;//升序
}int main()
{int a[10] = {7, 4, 5, 23, 2, 73, 41, 52, 28, 60},i;sort(a, a+10, compare);for(i=0;i<10;i++){cout<<a[i]<<" ";}return 0;
}

输出结果为:2 4 5 7 23 28 41 52 60 73

(2)利用functional标准库

利用头文件:#include< functional >引入标准库

functional提供了如下的基于模板的比较函数对象:

  • equal_to< Type >:等于
  • not_equal_to< Type >:不等于
  • greater< Type >:大于
  • greater_equal< Type >:大于等于
  • less< Type >:小于
  • less_equal< Type >:小于等于

所以升序降序可以用greater和less表示
升序:sort( begin,end,less< data-type >() )
降序:sort( begin,end,greater< data-type >() )

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<functional>
using namespace std;
int main()
{int a[10] = {7, 4, 5, 23, 2, 73, 41, 52, 28, 60},i;sort(a, a+10, less<int>());for(i=0;i<10;i++){cout<<a[i]<<" ";}return 0;
}

输出结果为:2 4 5 7 23 28 41 52 60 73

C/C++自带的排序函数相关推荐

  1. qsort — c语言中自带的排序函数(附带void*、回调函数知识点

    因为总是忘记有qsort这个函数,导致遇到需要排序的题的时候,总是要写着类似的代码,所以特此单独把qsort拿出来单独整理一遍,让自己能够熟练掌握,也以免之后忘记了qsort可以拿自己的文章看. 目录 ...

  2. c++自带的排序函数sort

    其实C语言里也有qsort排序函数,但相较于C++的sort排序函数更加繁琐,不推荐使用.下面来介绍怎么使用C++里的sort排序函数. Sort的用法 1.sort函数的使用必须加上头文件#incl ...

  3. C语言自带的排序函数

    C语言有自有的qsort函数. 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 原型: void qsort(void base,int nelem,int width,int (fcm ...

  4. Java自带的排序函数归纳总结

    Java中强大的jdk给我们提供了许多现成能使用的排序算法 目录 对数组排序 Arrays.sort(); 对List排序排序 1.使用list自带的sort方法 2.使用Collections.so ...

  5. sort()排序函数

    http://blog.csdn.net/zzzmmmkkk/article/details/4266888 想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qso ...

  6. C++ 排序函数 sort(),qsort()的用法

    想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区 ...

  7. python 排序函数 sort sorted 简介

    sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...

  8. 排序函数(sort()、sorted()、argsort()函数)

    python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 1 ls = list([5, 2, 3, 1, 4]) 2 new_ls = so ...

  9. mysql的组内排序生成序号_sql 分组查询,组内排序, 组内添加序号 (SQL Server 排序函数 ROW_NUMBER和RANK 用法总结)...

    下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库. -- 添加序列号 -- 行号用法: ROW_NUMBER() ...

最新文章

  1. ITK:将所有像素的总和缩放为常数
  2. oracle实例包括哪几部分,数据库的实例组成部分及作用是什么?一个oracle数据库可以有多个实例吗?...
  3. js:select的选择改变事件,获取当前选择的值
  4. php怎么用递归函数遍历多维数组,php递归遍历多维数组的方法
  5. tensorflow stack unstack操作
  6. vue中动态加载图片路径
  7. java applet介绍,Java Applet教程介绍
  8. 15s是什么意思c语言,15s是什么意思
  9. 【Python爬虫】爬取 LOL 全英雄全皮肤图片
  10. .net支付宝沙箱二维码支付
  11. 没有项目管理经验,可以参加PMP考试?
  12. Kill Demodogs——c++——pow_na的博客
  13. php天眼查数据抓取,python用xpath采集天眼查内容,有反爬,zip拼数据
  14. CDH安装Tez 0.8.5
  15. 如何利用网络技术赚钱的
  16. 年终盘点,蔚来终于失去互联网造车老大地位,被小鹏取而代之
  17. 2020-04-03
  18. CentOS 8安装 GVM20.08
  19. MAC 合并多个jpg文件为PDF
  20. 国产CNC数控机床现状

热门文章

  1. python svg2rlg_python – 从svg转换为pdf
  2. 计算机简介Python简介关键字和标识符输入输出
  3. 适用于FreeRTOS初学者,FreeRTOS整体知识框架
  4. Java8之function函数详解
  5. 卡尔曼滤波经典讲解,C++算法实现
  6. couchdb 自动生成html,CouchDB 安装
  7. java实现自己的trim效果---去掉首尾指定字符
  8. 六驾齐驱:第一届区块链技术及应用峰会(BTA)·中国分论坛首曝超长「片花」
  9. 【C#】【报错解决】分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。...
  10. 永磁材料知识—钕铁硼