C++_homework_StackSort
顾名思义(?)类似于单调栈?维护一个单调递减的栈。一旦准备入栈的元素大于栈顶元素,栈一直弹出直到准备入栈的元素小于等于栈顶元素,弹出的元素压入另一个tmp栈中。
- #include <iostream>
- #include <stack>
- #include <cstdlib>
- #include <ctime>
- using namespace std;
- void StackSort(stack<int>& s)
- {
- stack<int> tmp;
- while(!s.empty()){
- tmp.push(s.top());
- s.pop();
- }
- while(!tmp.empty()){
- if(s.empty()){s.push(tmp.top());tmp.pop();}
- else{
- int x=tmp.top();
- tmp.pop();
- if(x<=s.top()) s.push(x);
- else{
- while(!s.empty()&&x>s.top()){
- tmp.push(s.top());
- s.pop();
- }
- s.push(x);
- }
- }
- }
- }
- void display(stack<int> s)
- { while (!s.empty()) cout<<s.top()<<endl,s.pop();
- cout<<endl;
- }
- int main(int argc,char**argv)
- { const int n{};
- srand((unsigned)time());
- stack<int> s;
- for (int i{};i<n;i++) s.push(rand()%);
- cout<<"Before sorting:"<<endl<<endl; display(s);
- cout<<"After sorting:"<<endl; StackSort(s); display(s);
- return ;
- }
s:
tmp: 8 7 9
s: 9
tmp: 8 7
s: 9 7
tmp: 8
s: 9 8
tmp: 7
s: 9 8 7
tmp:
C++_homework_StackSort的更多相关文章
随机推荐
- JSP中如何利用JS实现登录页面的跳转(JSP中如何利用JS实现跳转页面)
<%! <% url = word = } ...
- [Windows Server 2008] IIS自带FTP配置方法
★ 欢迎来到[护卫神·V课堂],网站地址:http://v.huweishen.com★ 护卫神·V课堂 是护卫神旗下专业提供服务器教学视频的网站,每周更新视频.★ 本节我们将带领大家:IIS自带FT ...
- 排序算法JavaScript版
冒泡排序 function bubbleSort(arr) { var len = arr.length; for (var i = 0; i < len - 1; i++) { for (va ...
- Redis 之服务器集群配置
常见的集群架构如图: redis操作过程中数据同步的函数调用关系: 集群搭建: 1.修改3个redis.config 文件的: 2.启动2个redis服务器 当杀掉redis主进程Master时,由于 ...
- VS2015编译ffmpeg的问题解决
刚装了vs2015,打开一些ffmpeg项目,发现不能编译通过,包括stdio.h都无法找到,可能是vs2015的bug吧. 现在记录一下解决方法: 我的目录是这样定义的: C:\Program Fi ...
- @RequestMapping与controller方法返回值介绍
@RequestMapping url映射:定义controller方法对应的url,进行处理器映射使用.@RequestMapping(value="/item")或@Reque ...
- B.2 列表
从很多方面来说,列表是最简单也最自然的集合类型.框架中包含很多实现,具有各种功能 和性能特征.一些常用的实现在哪里都可以使用,而一些较有难度的实现则有其专门的使用场景. B.2.1 List< ...
- Oracle数据库的自动备份脚本
@echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...
- DP背包问题小总结
DP的背包问题可谓是最基础的DP了,分为01背包,完全背包,多重背包 01背包 装与不装是一个问题 01背包基本模型,背包的总体积为v,总共有n件物体,每件物品的体积为v[i],价值为w[i],每件物 ...
- cin输入过慢用scanf???现在才知道cin可以加速
今天才发现可以加速原帖 只需要两行放在main开头即可 ios_base::sync_with_stdio(0); cin.tie(NULL);