news 2026/8/22 0:23:47

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/8/21 20:37:22

Java Stream API 使用总结

在 Java 8 之后&#xff0c;Stream API 已经成为日常开发中不可或缺的工具。 但很多人对 Stream 的理解&#xff0c;仍停留在 filter map collect。 本文结合真实业务场景&#xff0c;总结 Stream API 的正确使用方式、常见误区和进阶技巧。一、为什么要用 Stream API直奔主题…

作者头像 李华
网站建设 2026/8/22 6:55:12

LeetCode 分类刷题:199. 二叉树的右视图

题目给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。解析// 怎么递归找到每一层的最右节点&#xff1f;// 从根节点开始&#xff0c;先遍历右子树的节点&#xff0c;再遍历左子树的…

作者头像 李华
网站建设 2026/8/22 9:07:56

触摸按键模块的工作原理、选择方法及常见问题探讨

对电子爱好者或工程师来说&#xff0c;触摸按键模块提供了一种无需机械按压、更加现代和可靠的交互方式。它通过检测人体电容的变化来工作&#xff0c;正在逐步替代许多产品中的传统机械按键。本文将从几个实用角度&#xff0c;探讨如何选择和使用这种模块。 触摸按键模块的工作…

作者头像 李华
网站建设 2026/8/22 11:03:29

LightGlue特征匹配技术:如何在5分钟内实现4倍速度提升

LightGlue特征匹配技术&#xff1a;如何在5分钟内实现4倍速度提升 【免费下载链接】LightGlue LightGlue: Local Feature Matching at Light Speed (ICCV 2023) 项目地址: https://gitcode.com/gh_mirrors/li/LightGlue 你是否曾为传统特征匹配算法的缓慢速度而苦恼&…

作者头像 李华
网站建设 2026/8/22 7:58:44

Xenia Canary终极指南:在PC上完美体验Xbox 360经典游戏

想要在现代电脑上重温《光环》、《战争机器》、《极限竞速》等Xbox 360经典游戏吗&#xff1f;Xenia Canary作为目前最先进的Xbox 360模拟器&#xff0c;通过精密的硬件仿真技术&#xff0c;让数百款经典游戏在PC平台重获新生。这款开源模拟器利用动态二进制翻译和即时编译技术…

作者头像 李华
网站建设 2026/8/22 16:47:12

PivotTable.js:让数据分析变得直观易懂的利器

在数据驱动的时代&#xff0c;如何快速从海量信息中提取有价值的内容成为关键挑战。PivotTable.js作为一个开源的JavaScript数据透视表库&#xff0c;通过直观的拖拽操作和灵活的视图切换&#xff0c;让数据分析变得简单而高效。 【免费下载链接】pivottable Open-source Javas…

作者头像 李华