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() ...
最新文章
- 中秋节,送上一次非常有趣的SQL优化实战经历
- Rest 微服务工程搭建02——微服务消费者订单Module模块 || @RequestBody 的重要作用
- 论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》
- linux--select
- 解锁区块链的创业密码
- OpenCv颜色直方图
- 成为数据分析师需要具备的知识体系
- 腾讯Java面试题、笔试题(含答案)
- 绘图工具java软件开发模板_仅适合程序员的uml绘图工具-plantuml
- 关于一张 5 亿数据表之我与 DBA 的 battle
- 教师计算机西沃培训心得,希沃电子白板学习心得体会
- OpenGL ES 绘制纹理
- 计算机CPU核心部件简介
- 1.3中国计算机网络发展情况
- window.print() 实现A4纸张打图片分页,解决预览首页空白页、打印多出一张空白页问题
- 【软件构造】小谈designing patterns
- php mysql好学吗_零基础小白PHP开发好学吗
- mysql my.cof 配置表空间_my.conf配置大全
- 关于国密HTTPS的那些事(三)
- 解决:java.net.SocketException: Software caused connection abort: recv failed
热门文章
- 12|QEMU:支持RISC-V的QEMU如何构建?
- 网易视频云郭再荣:视频云服务趋向场景化一体化
- 多商户系统管理——店铺后台设计
- 大数据项目之数仓相关知识
- oracle查看expdp进度,备份之监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)
- php中如果想取得,php考试题 (选择题)
- 讲真,计算机还能火多久?2020届本科,非科班,打算22年考研,害怕三四年以后读研出来计算机不行了
- ChatGPT 与AI大模型发展简要综述
- 写给计算机老师的一封信800,给老师的一封信800字
- 解决已经安装了新版本的.net framework,在visual studio的target framework没有显示的问题