C/C++自带的排序函数
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++自带的排序函数相关推荐
- qsort — c语言中自带的排序函数(附带void*、回调函数知识点
因为总是忘记有qsort这个函数,导致遇到需要排序的题的时候,总是要写着类似的代码,所以特此单独把qsort拿出来单独整理一遍,让自己能够熟练掌握,也以免之后忘记了qsort可以拿自己的文章看. 目录 ...
- c++自带的排序函数sort
其实C语言里也有qsort排序函数,但相较于C++的sort排序函数更加繁琐,不推荐使用.下面来介绍怎么使用C++里的sort排序函数. Sort的用法 1.sort函数的使用必须加上头文件#incl ...
- C语言自带的排序函数
C语言有自有的qsort函数. 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 原型: void qsort(void base,int nelem,int width,int (fcm ...
- Java自带的排序函数归纳总结
Java中强大的jdk给我们提供了许多现成能使用的排序算法 目录 对数组排序 Arrays.sort(); 对List排序排序 1.使用list自带的sort方法 2.使用Collections.so ...
- sort()排序函数
http://blog.csdn.net/zzzmmmkkk/article/details/4266888 想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qso ...
- C++ 排序函数 sort(),qsort()的用法
想起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~ 所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区 ...
- python 排序函数 sort sorted 简介
sort() 是Python列表的一个内置的排序方法,list.sort() 方法排序时直接修改原列表,返回None: sort() 是Python内置的一个排序函数,它会从一个迭代器返回一个排好序的 ...
- 排序函数(sort()、sorted()、argsort()函数)
python的内建排序函数有 sort.sorted两个. 1.基础的序列升序排序直接调用sorted()方法即可 1 ls = list([5, 2, 3, 1, 4]) 2 new_ls = so ...
- mysql的组内排序生成序号_sql 分组查询,组内排序, 组内添加序号 (SQL Server 排序函数 ROW_NUMBER和RANK 用法总结)...
下面的例子和SQL语句均在SQL Server 2008环境下运行通过,使用SQL Server自带的AdventureWorks数据库. -- 添加序列号 -- 行号用法: ROW_NUMBER() ...
最新文章
- ITK:将所有像素的总和缩放为常数
- oracle实例包括哪几部分,数据库的实例组成部分及作用是什么?一个oracle数据库可以有多个实例吗?...
- js:select的选择改变事件,获取当前选择的值
- php怎么用递归函数遍历多维数组,php递归遍历多维数组的方法
- tensorflow stack unstack操作
- vue中动态加载图片路径
- java applet介绍,Java Applet教程介绍
- 15s是什么意思c语言,15s是什么意思
- 【Python爬虫】爬取 LOL 全英雄全皮肤图片
- .net支付宝沙箱二维码支付
- 没有项目管理经验,可以参加PMP考试?
- Kill Demodogs——c++——pow_na的博客
- php天眼查数据抓取,python用xpath采集天眼查内容,有反爬,zip拼数据
- CDH安装Tez 0.8.5
- 如何利用网络技术赚钱的
- 年终盘点,蔚来终于失去互联网造车老大地位,被小鹏取而代之
- 2020-04-03
- CentOS 8安装 GVM20.08
- MAC 合并多个jpg文件为PDF
- 国产CNC数控机床现状
热门文章
- python svg2rlg_python – 从svg转换为pdf
- 计算机简介Python简介关键字和标识符输入输出
- 适用于FreeRTOS初学者,FreeRTOS整体知识框架
- Java8之function函数详解
- 卡尔曼滤波经典讲解,C++算法实现
- couchdb 自动生成html,CouchDB 安装
- java实现自己的trim效果---去掉首尾指定字符
- 六驾齐驱:第一届区块链技术及应用峰会(BTA)·中国分论坛首曝超长「片花」
- 【C#】【报错解决】分析器错误消息: 无法识别的属性“targetFramework”。请注意属性名称区分大小写。...
- 永磁材料知识—钕铁硼