news 2026/6/24 19:56:14

PAT 1171 Replacement Selection

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PAT 1171 Replacement Selection



这一题的大意是给出一种叫做Replacement Selection的排序方法,具体的方案是在给出一个存储器的大小M,当存储器中的元素小于存储器的大小M的时候,不断的读入元素,当元素的数量大于等于M时候,就输出存储器中最小的,并且在这个时候如果输入的元素比当前输出的元素大,就放入到存储器中,接替输出元素的位置,如果比输出元素小,就放在下一轮,当这一轮中存储器中元素输出完之后,把下一轮中的元素输入进存储器中,所有的元素按照同样的方法输出,最后所=所构成的排序序列就是Replacement Selection
输出存储器中最小的,我们可以采用堆来存储,保存下一轮的元素,我们同样可以采用堆来存储,这样当第一轮的元素为空时,我们可以直接交换两个堆实现下一轮的开始,而且采用堆可以快速的按照题目的要求按顺序输出。
完整代码如下:

#include<bits/stdc++.h>#include<iostream>usingnamespacestd;//当输入过大的时候,我们采用外部排序//产生一种排序记录叫做一趟//尽可能读多的记录到存储器中,并且在内部排序它们// 它们把结果写回到一些tape中//每一个运行/趟的大小和存储器的容量是相同的// 第一个记录被输出到tape中,存储器将变得可利用对于另一个记录// 排序以递增的方式,如果下一个记录大于等于我们已经输出的记录// 我们把它放到趟中// 81 94 11 96 12 99 35// 11 81 94 12 96 99 35// 11 81priority_queue<int,vector<int>,greater<int>>q1;priority_queue<int,vector<int>,greater<int>>q2;intN;intM;vector<int>t;intmain(){cin>>N>>M;for(inti=0;i<N;i++){intx;cin>>x;t.push_back(x);if(q1.size()<M){q1.push(x);}}intindex=M;while(q1.size()){intx=q1.top();cout<<q1.top();q1.pop();if(x<=t[index]&&index<N){q1.push(t[index]);index++;}elseif(x>t[index]&&index<N){q2.push(t[index]);index++;}if(q1.empty()){cout<<endl;swap(q1,q2);}else{cout<<" ";}}return0;}

总结:这一题首先得看懂题意,我刚开始都没有看懂题意,不知道到底是按照怎么样的流程输出的,当我们看清题意后,会发现采用堆来存储和输出是十分的方便。之后模拟流程即可。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 2:00:52

动态内存管理

一.动态内存管理1.mallocvoid malloc (size_t size);这个函数向内存申请一块连续可用的空间&#xff0c;并返回指向这块空间的指针如果开辟成功&#xff0c;则返回一个指向开辟空间的指针如果开辟失败&#xff0c;则返回一个NULL&#xff0c;因此malloc的返回值一定要做检查返回…

作者头像 李华
网站建设 2026/6/24 23:19:49

P2SH:比特币的「脚本保险箱」与比特鹰的技术解析

P2SH&#xff08;Pay to Script Hash&#xff09;是比特币实现灵活交易逻辑的核心技术&#xff0c;通过将复杂脚本转化为20字节哈希&#xff0c;兼顾安全性与易用性。比特鹰将解析其运作机制、典型应用及技术权衡。P2SH工作原理&#xff1a;比特鹰的三步拆解 比特鹰为你总结&am…

作者头像 李华
网站建设 2026/6/24 9:10:39

macOS存储空间不足?3步解锁远程存储新方案

macOS存储空间不足&#xff1f;3步解锁远程存储新方案 【免费下载链接】iSCSIInitiator iSCSI Initiator for macOS 项目地址: https://gitcode.com/gh_mirrors/is/iSCSIInitiator 还在为Mac电脑存储空间捉襟见肘而烦恼吗&#xff1f;想要像专业人士一样管理网络存储资源…

作者头像 李华
网站建设 2026/6/25 4:14:56

Ruby编程语言下载指南及背后的技术现状分析

作为一个接触Ruby多年的开发者&#xff0c;我想说&#xff0c;下载Ruby本身只是一个简单的技术动作&#xff0c;但这件事背后&#xff0c;却折射出这门语言目前在生态和定位上的一些困境。它曾因Ruby on Rails框架而风靡一时&#xff0c;但如今在快速迭代的技术浪潮中&#xff…

作者头像 李华
网站建设 2026/6/25 2:14:14

C++ Builder 6.0视频教程怎么选?这些要点要知道

要系统学习C Builder 6.0&#xff0c;找到一套合适的视频教程是关键。这门经典的RAD工具在快速开发Windows桌面应用上仍有其价值&#xff0c;但如今相关的学习资源已显老旧且分散。挑选教程时&#xff0c;不应只看其是否存在&#xff0c;更要评估其内容是否切合当下的学习环境和…

作者头像 李华
网站建设 2026/6/24 5:15:46

利用AI编写属于自己的软件(附提示词)

目标很明确:让读者真正理解——为什么、以及如何,去“完全替代软件本身”,而不是继续依附于不可控的软件供应方,让掌控权回到使用者手中。 ——非常少数人会提前意识到、但迟早所有人都要面对的事情 从简单工具到复杂系统 如何一步步替代现有软件,让软件的掌控权回到使用…

作者头像 李华