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. 中秋节,送上一次非常有趣的SQL优化实战经历
  2. Rest 微服务工程搭建02——微服务消费者订单Module模块 || @RequestBody 的重要作用
  3. 论文阅读——《Exposure Control using Bayesian Optimization based on Entropy Weighted Image Gradient》
  4. linux--select
  5. 解锁区块链的创业密码
  6. OpenCv颜色直方图
  7. 成为数据分析师需要具备的知识体系
  8. 腾讯Java面试题、笔试题(含答案)
  9. 绘图工具java软件开发模板_仅适合程序员的uml绘图工具-plantuml
  10. 关于一张 5 亿数据表之我与 DBA 的 battle
  11. 教师计算机西沃培训心得,希沃电子白板学习心得体会
  12. OpenGL ES 绘制纹理
  13. 计算机CPU核心部件简介
  14. 1.3中国计算机网络发展情况
  15. window.print() 实现A4纸张打图片分页,解决预览首页空白页、打印多出一张空白页问题
  16. 【软件构造】小谈designing patterns
  17. php mysql好学吗_零基础小白PHP开发好学吗
  18. mysql my.cof 配置表空间_my.conf配置大全
  19. 关于国密HTTPS的那些事(三)
  20. 解决:java.net.SocketException: Software caused connection abort: recv failed

热门文章

  1. 12|QEMU:支持RISC-V的QEMU如何构建?
  2. 网易视频云郭再荣:视频云服务趋向场景化一体化
  3. 多商户系统管理——店铺后台设计
  4. 大数据项目之数仓相关知识
  5. oracle查看expdp进度,备份之监控数据备份恢复完成进度(EXPDP/IMPDP/RMAN)
  6. php中如果想取得,php考试题 (选择题)
  7. 讲真,计算机还能火多久?2020届本科,非科班,打算22年考研,害怕三四年以后读研出来计算机不行了
  8. ChatGPT 与AI大模型发展简要综述
  9. 写给计算机老师的一封信800,给老师的一封信800字
  10. 解决已经安装了新版本的.net framework,在visual studio的target framework没有显示的问题