尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
【算法刷题】按距离升序排序问题(自定义排序 / 双关键字比较)
【算法刷题】按距离升序排序问题自定义排序 / 双关键字比较 题目描述与考点题目名称按距离升序排序核心问题给定一个长度为NNN的整数数组a1,a2,…,aNa_1, a_2, \dots, a_Na1​,a2​,…,aN​和一个目标整数xxx。要求根据以下规则将数组排序第一关键字按照di∣ai−x∣d_i |a_i - x|di​∣ai​−x∣的绝对差值升序排序距离xxx越近的排在越前面。第二优先级如果did_idi​相同则按aia_iai​本身的大小升序排序数值较小的排在前面。核心考点自定义排序比较器Custom Comparator、双关键字比较逻辑、Lambda 表达式 / 结构体。 核心思路解析对于这类“多优先级排序”问题核心在于正确书写自定义比较逻辑。假设我们在比较数组中的任意两个元素AAA与BBB先计算绝对差值dA∣A−x∣d_A |A - x|dA​∣A−x∣dB∣B−x∣d_B |B - x|dB​∣B−x∣比较第一关键字若dA≠dBd_A \neq d_BdA​dB​绝对差值小的排前面返回dAdBd_A d_BdA​dB​。比较第二关键字若dAdBd_A d_BdA​dB​数值本身小的排前面返回ABA BAB。 C 完整 AC 代码#includeiostream#includevector#includecmath#includealgorithmusingnamespacestd;intmain(){// 开启快速 I/Oios::sync_with_stdio(false);cin.tie(nullptr);intn;longlongx;if(!(cinnx))return0;vectorlonglonga(n);for(inti0;in;i){cina[i];}// 自定义排序使用 Lambda 表达式捕获全局变量 xsort(a.begin(),a.end(),[x](longlongA,longlongB){longlongdAabs(A-x);longlongdBabs(B-x);// 第一关键字绝对差值升序if(dA!dB){returndAdB;}// 第二关键字差值相同时按数值本身升序returnAB;});// 输出排序后的新数组for(inti0;in;i){couta[i](in-1?: );}cout\n;return0;}❌ 易错点总结漏掉第二关键字处理只写了abs(A - x) abs(B - x)忽略了当距离相等时需要按原数值大小再次升序排序的逻辑。比较运算符写错在严格弱序比较中必须使用小于号切勿带有否则可能在相同元素较多时导致std::sort触发段错误Segmentation Fault。数据溢出陷阱当aia_iai​和xxx的范围较大时ai−xa_i - xai​−x可能超出int的存储限制建议统一采用long long数据类型。⏱️ 复杂度分析时间复杂度O(Nlog⁡N)\mathcal{O}(N \log N)O(NlogN)主要耗时在于对NNN个元素进行std::sort快速排序单次比较耗时为O(1)\mathcal{O}(1)O(1)。空间复杂度O(N)\mathcal{O}(N)O(N)用于存储大小为NNN的输入数组。
RELATED

相关推荐

STM32+DHT11数码管温湿度报警器设计与Proteus仿真详解

STM32+DHT11数码管温湿度报警器设计与Proteus仿真详解

简介:本资源是一套完整的基于STM32F103单片机的温湿度检测报警系统开发包,面向嵌入式初学者、课程设计学生及电子类竞赛备赛者,解决环境参数采集、阈值设定、实时显示与声光报警等典型单片机应用问题。压缩包共294个文件,含72个头…

📅 2026/10/7 16:36:11
ZIP文件全流程处理:解压校验、EOCD修复与密码恢复实操

ZIP文件全流程处理:解压校验、EOCD修复与密码恢复实操

简介:本资源是面向嵌入式实时系统开发者的VxWorks 7平台Zynq-7000系列驱动开发完整工程包,专为正点原子领航者开发板(XC7Z020)定制,解决ARMFPGA异构平台上VxWorks BSP适配与外设驱动复用难题。压缩包共68个文件&#x…

📅 2026/10/8 4:35:46
Zynq-7000工程包解压与中断例程实战:从ZIP修复到Vivado导入

Zynq-7000工程包解压与中断例程实战:从ZIP修复到Vivado导入

简介:本资源是面向嵌入式实时系统开发者的VxWorks驱动工程完整实现,基于正点原子领航者ZYNQ-7020开发板,专为需要在Xilinx Zynq平台上构建高可靠性VxWorks BSP的工程师与高校研究者设计。项目严格采用VxBus架构开发全部外设驱动,显…

📅 2026/10/4 22:25:03
MORE NEWS

更多资讯

📰

低压电工作业实操设备证全国通用吗?学历不高怕报不上名?看这篇就够了

低压电工作业实操设备证全国通用吗?学历不高怕报不上名?看这篇就够了 你是不是也担心自己学历不高,考不了低压电工作业实操设备证?别急,今天咱们就来聊聊这个证到底该怎么考、值不值得考,还有它在全国范围内是不是 全国通用…

📰

贵州电工证考卷通过率揭秘:找工作必须考的特种作业证怎么考?

贵州电工证考卷通过率揭秘:找工作必须考的特种作业证怎么考? 你是不是正在为找工作发愁?电工证成了很多岗位的“硬门槛”,没有证就进不了门。 贵州电工证考卷…

📰

咸阳办假电工证怎么考?含金量够不够?

咸阳办假电工证怎么考?含金量够不够? 证书过期了不知道怎么复审延期,很多人遇到过这个问题,尤其是特种作业操作证,如果没及时复审,就等于失去了合法作业的资格,轻则影响工作,重则可能被追责。今天咱们就聊聊【咸阳办假电工证】到底值不值得考,含金量…

📰

在机构考电工证全国通用怎么办理流程全解析

在机构考电工证全国通用怎么办理流程全解析 找工作卡在特种作业证上,你不是一个人。特种作业证是进入建筑、制造、电力等行业门槛的第一道关卡,尤其像 电工证 这种 全国通用…

📰

嘉兴报考电工证在哪考怎么报名别踩坑!怕考不过白交培训费?

嘉兴报考电工证在哪考怎么报名别踩坑!怕考不过白交培训费? 怕考不过白交培训费?你不是一个人。特别是像许昌应届工程类毕业生,刚毕业就想进工地、进厂,但电工证是必须的门槛。现在你最关心的两个问题就是:嘉兴报考电工证在哪考?怎么报名?别急,这篇讲…

📰

海口电工证容易考么?实操考试考什么?多少钱你得知道!

海口电工证容易考么?实操考试考什么?多少钱你得知道! 你是不是也这样, 不知道去哪报名怕被中介坑 ,看到网上各种培训机构信息,又担心交了钱拿不到证?尤其是 海口电工证容易考么 ,这事儿关系到你能不能顺利上岗,还能 多少钱…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬