单页做网站教程上海锦都建设(集团)有限公司网站
张小明 2026/1/13 8:38:58
单页做网站教程,上海锦都建设(集团)有限公司网站,网站建设策划 优帮云,青岛 公司 网站建设这一题的大意是给出一种叫做Replacement Selection的排序方法#xff0c;具体的方案是在给出一个存储器的大小M#xff0c;当存储器中的元素小于存储器的大小M的时候#xff0c;不断的读入元素#xff0c;当元素的数量大于等于M时候#xff0c;就输出存储器中最小的#…这一题的大意是给出一种叫做Replacement Selection的排序方法具体的方案是在给出一个存储器的大小M当存储器中的元素小于存储器的大小M的时候不断的读入元素当元素的数量大于等于M时候就输出存储器中最小的并且在这个时候如果输入的元素比当前输出的元素大就放入到存储器中接替输出元素的位置如果比输出元素小就放在下一轮当这一轮中存储器中元素输出完之后把下一轮中的元素输入进存储器中所有的元素按照同样的方法输出最后所所构成的排序序列就是Replacement Selection输出存储器中最小的我们可以采用堆来存储保存下一轮的元素我们同样可以采用堆来存储这样当第一轮的元素为空时我们可以直接交换两个堆实现下一轮的开始而且采用堆可以快速的按照题目的要求按顺序输出。完整代码如下#includebits/stdc.h#includeiostreamusingnamespacestd;//当输入过大的时候我们采用外部排序//产生一种排序记录叫做一趟//尽可能读多的记录到存储器中并且在内部排序它们// 它们把结果写回到一些tape中//每一个运行/趟的大小和存储器的容量是相同的// 第一个记录被输出到tape中存储器将变得可利用对于另一个记录// 排序以递增的方式如果下一个记录大于等于我们已经输出的记录// 我们把它放到趟中// 81 94 11 96 12 99 35// 11 81 94 12 96 99 35// 11 81priority_queueint,vectorint,greaterintq1;priority_queueint,vectorint,greaterintq2;intN;intM;vectorintt;intmain(){cinNM;for(inti0;iN;i){intx;cinx;t.push_back(x);if(q1.size()M){q1.push(x);}}intindexM;while(q1.size()){intxq1.top();coutq1.top();q1.pop();if(xt[index]indexN){q1.push(t[index]);index;}elseif(xt[index]indexN){q2.push(t[index]);index;}if(q1.empty()){coutendl;swap(q1,q2);}else{cout ;}}return0;}总结这一题首先得看懂题意我刚开始都没有看懂题意不知道到底是按照怎么样的流程输出的当我们看清题意后会发现采用堆来存储和输出是十分的方便。之后模拟流程即可。