排序堆栈
来源:互联网 发布:艺恩咨询数据库 编辑:程序博客网 时间:2024/06/16 06:28
题目:
给定一个堆栈,要求只用push,pop,peek以及isEmpty这四个成员函数对堆栈中的元素进行排序。
解析:
这个问题可以借助一个辅助栈来完成。排序的方法类似于插入排序,时间复杂度为O(n^2).具体细节可以参考代码。
代码:
public static Stack<Integer> sort(Stack<Integer> s) { Stack<Integer> r = new Stack<Integer>(); while(!s.isEmpty()) { int tmp = s.pop(); while(!r.isEmpty() && r.peek() > tmp) { s.push(r.pop()); } r.push(tmp); } return r;}
- 堆栈排序
- 排序堆栈
- 堆栈排序算法
- 快速排序中的堆栈深度
- 快速排序中的堆栈深度
- 快速排序中的堆栈深度
- 堆栈 ——堆排序
- C#实现冒泡排序 堆栈 队列
- Cracking coding interview(3.6)堆栈排序
- 面试算法:堆栈元素的在线排序
- 堆栈
- 堆栈
- 堆栈
- 堆栈
- 堆栈
- 堆栈
- 堆栈
- 堆栈
- struts2批量增加
- jQuery UI Datepicker添加时分秒
- 探秘Java虚拟机 gc的监控
- URAL 1018 (金典树形DP)
- 查看mysql进程
- 排序堆栈
- 复杂网络分析库NetworkX学习笔记2
- Quartz2之入门示例
- mysql定时任务简单例子
- ASP.NET缓存。Memcached分布式缓存
- 导出mysql数据库数据
- 面试经典算法1之交换排序
- Android中全局Application的onCreate多次调用问题
- 发布软件