news 2026/4/3 4:58:03

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/3/31 20:18:01

ytDownloader使用指南:如何高效下载全网视频资源

ytDownloader使用指南&#xff1a;如何高效下载全网视频资源 【免费下载链接】ytDownloader A modern GUI App for downloading Videos and Audios from hundreds of sites 项目地址: https://gitcode.com/GitHub_Trending/yt/ytDownloader 你是否曾经为下载在线视频而辗…

作者头像 李华
网站建设 2026/3/27 18:24:50

便携式臭氧检测仪的使用与维护

一、引言随着人们对空气质量的关注度不断提高&#xff0c;臭氧作为一种重要的空气污染物也越来越受到重视。便携式臭氧检测仪因其小巧便携、操作简便等特点&#xff0c;被广泛应用于环境监测、工业生产、医疗卫生等领域。本文将详细介绍便携式臭氧检测仪的使用方法和维护要点&a…

作者头像 李华
网站建设 2026/3/30 16:23:43

Vijos贪吃九头龙解题:题意模型与状态定义全解析

了解过Vijos在线评测系统的人&#xff0c;大多对“贪吃的九头龙”这道题目有印象。它不仅是算法学习路径上一个经典的树形动态规划问题&#xff0c;更因其清晰的模型和适中的难度&#xff0c;成为检验学习者是否真正理解树形DP状态设计与转移思想的试金石。本文将围绕解题中的几…

作者头像 李华
网站建设 2026/3/19 10:47:16

Shell脚本中elif用法及与elseif的区别,必看

在Shell脚本编程中&#xff0c;条件判断是控制流程的核心。对于许多初学者甚至有一定经验的开发者&#xff0c;elif&#xff08;注意是elif&#xff0c;不是elseif&#xff09;的使用虽然基础&#xff0c;但在实际编写健壮、清晰的脚本时&#xff0c;其细节和最佳实践往往容易被…

作者头像 李华
网站建设 2026/3/30 16:32:07

线索二叉树画法全解析,前驱后继指针这么画

线索二叉树是一种优化遍历效率的存储结构。它通过在空指针域中存放指向其前驱或后继的“线索”&#xff0c;使得在遍历时可以不借助递归或栈。掌握其画法&#xff0c;关键在于理解线索化的规则&#xff0c;并能清晰地在图形上区分孩子指针与线索指针。 线索二叉树怎么画出前驱和…

作者头像 李华