(q)sort函数总结(基础篇)

news/2024/4/19 4:42:43/文章来源:https://blog.csdn.net/m0_73687800/article/details/129209703

1.sort函数

介绍:这是一个C++的函数,包含于algorithm头文件中。

基本格式:

sort(起始地址(常为变量名),排序终止的地址(变量名加上排序长度),自定义的比较函数)

重点:比较函数的编写:

以比大小为例,cmp函数编写格式应如下:

    bool cmp(_type x , _type y){return (排序条件) (<||>) (排序条件);}

实例化:1.一串数字按个位大小从小到大排序

    bool cmp(int x, int y) {return (x % 10) < (y % 10);}

2.按结构体中某一元素大小从小到大排序

    struct stu {int grades, num;};bool cmp(stu a, stu b) {return a.grades < b.grades;}

 3.再比如每一个学生有四科成绩,根据学生的四科成绩的平均分高低进行排名(@晴空๓)

    bool cmp_score(Student x,Student y){double average_x,average_y;average_x = (x.score[0]+x.score[1]+x.score[2]+x.score[3])/4;average_y = (y.score[0]+y.score[1]+y.score[2]+y.score[3])/4;return average_x > average_y;}

 此外,sort函数亦可对STL容器进行排序,详情请自行谷歌

2.qsort函数

 参考:1.(【C语言】快速排序函数qsort()

2. C语言快排函数 qsort()

简介:qosort函数是c语言中的一个快排函数,包含于头文件stdlib.h中

qsort函数包含四个参数,分别应如下填写:

第一个参数为欲排序的首地址

第二个参数应为欲排序的长度

第三个参数应为一个元素所占的字节

第四个参数为自定义的比较函数

实例化:

1.整型

int cmp (const void * a,const void *b)
{return * (int * )a-* (int *)b;
}

2.浮点型

int cmp (const void * a, const void * b)
{return *(double *)a > *(double *)b ? 1 : -1;
}

3.字符

int cmp (const void *a, const void *b)
{return *(char *)a - *(char *)b;
}

4.字符串

注意:

qsort(a, m, sizeof(char * )  * n, cmp);

 对字符串数组排序(char *s[]型)

char *s[100];
int cmp(const void *a, const void *b)
{return (strcmp(*(char**)a, *(char**)b));
}

对字符串数组的排序(char s[][]型)

char s[100][100];
int cmp(const void *a, const void *b)
{return (strcmp((char*)a, (char*)b));
}

 char s[ ]型:和char型的cmp函数编写的方法是一致的

int cmp (const void *a, const void *b)  
{  return * (char *)a - *(char * )b;  
}

注:以上全为按字典序排序

5.结构体:

结构体的二级排序:先根据double型的one的大小排序,若两值相等,在根据int型two的大小排序。

int cmp ( const void *a , const void *b )
{if((* (node * )a).one != ( * (node * )b).one)return ( * (node * )a).one > ( * (node * )b).one ? 1 : -1;else return (* (node * )a).two -( * (node * )b).two;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_74147.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目精选】基于Vue + ECharts的数据可视化系统的设计与实现(论文+源码+视频)

今天给小伙伴们推荐一款超优秀的全新Vue3.0大数据系统Vue3-bigData。 点击下载源码 vue3-bigdata 基于vue3.0echarts构建的可视化大屏图表展示系统。包括各种可视化图表及Vue3新API使用。 功能 柱状图、饼图、词云图、漏斗图 水球图、折线图 仪表盘、雷达图 矩形树图、关系…

基于Springboot+vue+协同过滤+前后端分离+智能图书推荐系统(用户,多商户,管理员)

技术栈: SpringBoot,SSM, MYSQL, Vue,Layui,JQUERY,HTML,CSS, JAVASCRIPT,前后台分离,日历控件,协同过滤(余弦函数)-基于用户过滤首页访问 http://localhost:8080/vue_gxhfztjxt管理员admin 123456商家 seller1 123456买家 user1 123456代码下载链接&#xff1a;https://pan.ba…

PowerAutomation获取邮件附件并删除这个邮件方法

这个文章是怎么来的呢&#xff1f;现在不是低代码开发平台启蒙阶段嘛&#xff1f;笔者也有幸在工作中进行了尝试&#xff0c;目前也已经在实际工作中结合Python进行了使用&#xff0c;当然&#xff0c;是可以提高IT的工作效率的。需求是这样的&#xff0c;想从公司的EBS平台报表…

行业观察 | SoC

本文对 SoC 进行不完全总结。 更新&#xff1a;2022 / 02 / 25 行业观察 | SoC总览概念组成周期原因产业链及市场上游下游产品厂商SoC V.S MCUMCUSoCMCU V.S SoC参考链接总览 概念 SoC 1‘ 2’ 3’ 4, 全称 System On Chip&#xff0c;又称 系统级芯片、片上系统&#xff0c…

Android 8请求权限时弹窗BUG

弹窗BUG 应用使用requestPermissions申请权限时&#xff0c;系统会弹出一个选择窗口&#xff0c;可进行允许或拒绝&#xff0c; 此窗口中有一个”不再询问“的选择框&#xff0c; ”拒绝”及“允许”的按钮。 遇到一个Bug,单点击“不再询问”&#xff0c;“允许”这个按钮会变…

数据结构与算法----问答2023

1、什么是哈希表&#xff1f;如何解决碰撞&#xff1f; 哈希表&#xff08;Hash Table&#xff09;&#xff0c;也称为散列表&#xff0c;是一种用于实现字典&#xff08;键值对&#xff09;数据结构的数据结构。它将键映射到哈希表中的一个索引&#xff08;桶&#xff09;来保…

【离线数仓-8-数据仓库开发DWD层-交易域相关事实表】

离线数仓-8-数据仓库开发DWD层-交易域相关事实表离线数仓-8-数据仓库开发DWD层-交易域相关事实表一、DWD层设计要点二、交易域相关事实表1.交易域加购事务事实表1.加购事务事实表 前期梳理2.加购事务事实表 DDL表设计分析3.加购事务事实表 加载数据分析1.首日全量加购的数据加载…

mysys2+minGW方案编译ffmpeg的最佳实践

一、Win10 64bit编译环境的建立1&#xff09;从http://www.msys2.org/下载 msys2-x86_64-xxx.exe2&#xff09; 安装msys2到默认路径 C:\msys64\3&#xff09; 运行MSYS2 w644&#xff09;执行 pacman -Syu 更新系统当出现提示时&#xff0c;选择y5) 当窗口关闭时&#xff0c;重…

【unity游戏制作-mango的冒险】场景二的镜头和法球特效跟随

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;unity游戏制作 ⭐mango的冒险场景二——镜头和法球特效跟随⭐ 文章目录⭐mango的冒险场景二——镜…

前端:分享JS中7个高频的工具函数

目录 ◆1、将数字转换为货币 ◆2、将 HTML 字符串转换为 DOM 对象 ◆3、防抖 ◆4、日期验证 ◆5、将 FormData&#xff08;表单数据&#xff09;转换为 JSON ◆6、衡量一个函数的性能 ◆7、从数组中删除重复项 JavaScript 实用函数是有用的、可重复使用的片段&#xff0…

Kotlin1.8新特性

Kotlin1.8.0新特性 新特性概述 JVM 的新实验性功能&#xff1a;递归复制或删除目录内容提升了 kotlin-reflect 性能新的 -Xdebug 编译器选项&#xff0c;提供更出色的调试体验kotlin-stdlib-jdk7 与 kotlin-stdlib-jdk8 合并为 kotlin-stdlib提升了 Objective-C/Swift 互操作…

FL StudioV21电脑版水果编曲音乐编辑软件

这是一款功能十分丰富和强大的音乐编辑软件&#xff0c;能够帮助用户进行编曲、剪辑、录音、混音等操作&#xff0c;让用户能够全面地调整音频。FL水果最新版是一款专业级别的音乐编曲软件&#xff0c;集合更多的编曲功能为一身&#xff0c;可以进行录音、编辑、制作、混音、调…

5 KNN算法及Python实现

0 建议学时 2学时 1 KNN算法 1.1 KNN原理 KNN&#xff1a;K Nearest Neighbors&#xff0c;即K个最近的邻居&#xff1b; 预测一个新值xxx&#xff0c;根据距离最近的K个点的类别来判断xxx属于哪一类。 算法核心要点&#xff1a; K值的选取非常重要&#xff1b; 距离公式…

数学不好,英语不行,非本专业,可以学IT吗?

很多小伙伴&#xff0c;都会问小青一些比较类似的问题。比如&#xff1a;不是计算机专业的&#xff0c;可以学编程吗&#xff1f;数学一直就不好&#xff0c;可以转行学IT吗&#xff1f;学编程开发&#xff0c;对英语的的要求会不会很高&#xff1f;01计算机不是计算机专业的&a…

【Arduino 无刷电机控制教程】

【Arduino 无刷电机控制教程】 1. 概述2. 试验准备3. 实验原理4. Arduino 无刷电机控制 – 电路图4.1 实验组件4.2 用于 BLDC 电机控制的 Arduino 代码5. 实验验证5.1 电位计控制无刷电机速度5.2 电调校准在本教程中,我们将学习如何使用 Arduino 和 ESC 控制无刷电机。如果您想…

(三)代表性物质点邻域的变形分析

本文主要内容如下&#xff1a;1. 伸长张量与Cauchy-Green 张量2. 线元长度的改变2.1. 初始/当前构型下的长度比2.2. 主长度比与 Lagrange/Euler 主方向2.3. 初始/当前构型下任意方向的长度比3. 线元夹角的改变4. 面元的改变5. 体元的改变1. 伸长张量与Cauchy-Green 张量 由于变…

ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP

1、文档说明 本篇文档将通过举例&#xff0c;解析字符的比较运算符之间的用法和区别&#xff0c;涉及到的操作符&#xff1a;CO|CN|CA|NA|CS|NS|CP|NP 2、用法和区别 用法总览 以下举例&#xff0c;几乎都使用一个字符变量和一个硬编码字符进行对比的方式&#xff0c;忽略尾…

刚上岸字节测试开发岗,全网最真实的大厂面试真题

首先我来解释一下为什么说是全网最真实的面试题&#xff0c;相信大家也发现软件测试面试题在网上流传也已不少&#xff0c;但是经过仔细查看发现了两个很重要的问题。 第一&#xff0c;网上流传的面试题的答案并不能保证百分百正确。也就是说各位朋友辛辛苦苦花了很多时间准备…

【数据结构趣味多】Map和Set

1.概念及场景 Map和set是一种专门用来进行搜索的容器或者数据结构&#xff0c;其搜索的效率与其具体的实例化子类有关。 在此之前&#xff0c;我还接触过直接查询O(N)和二分查询O(logN)&#xff0c;这两个查询有很多不足之出&#xff0c;直接查询的速率太低&#xff0c;而二分查…

Servlet笔记(11):Servletcontext对象

1、什么是ServletContext ServletContext是一个全局储存空间&#xff0c;随服务器的生命周期变化&#xff0c; Cookie&#xff0c;Session&#xff0c;ServletContext的区别 Cookie&#xff1a; 存在于客户端的本地文本文件 Session&#xff1a; 存在于服务器的文本文件&#…