美文网首页
Swift-栈排序

Swift-栈排序

作者: FlyElephant | 来源:发表于2017-05-07 12:56 被阅读31次

题目:编写程序,按升序对栈进行排序(即最大元素位于栈顶).最多只能使用一个额外的栈存放临时数据。

核心代码:
<pre><code>` func sort(data:[Int])->[Int] {

    var stack:[Int] = data
    var nextStack:[Int] = []
    
    while stack.count > 0 {
        
        let top:Int = stack.last!
        stack.removeLast() // 移除
        
        while nextStack.count > 0 &&  nextStack.last! > top {
            stack.append(nextStack.last!)
            nextStack.removeLast()
        }
        
        nextStack.append(top)
    }
    
    return nextStack
    
}`</code></pre>

测试代码:
<pre><code>var stackSort:StackSort = StackSort() var sortData:[Int] = stackSort.sort(data: [8,5,4,3,10,1,7,9,2,6]) print("FlyElephant---排序之后的数据---\(sortData)")</code></pre>

FlyElephant.png

相关文章

  • Swift-栈排序

    题目:编写程序,按升序对栈进行排序(即最大元素位于栈顶).最多只能使用一个额外的栈存放临时数据。 核心代码: `...

  • 面试题 03.05. 栈排序

    面试题 03.05. 栈排序 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放...

  • Swift-组合栈

    题目:设计一种数据结构,在前一个栈填满时新建一个栈,push()和pop()与普通栈的操作方法相同. 核心代码: ...

  • 第十四节-排序优化

    优化快速排序 三数取中法,九数取中法 随机法 限制递归深度 自己实现函数调用栈,手动模拟入栈出栈 举例分析排序函数...

  • 栈系列之-排序

    一、栈实现排序概述 将一个栈内的元素实现排序,光靠一个栈肯定是不够的,因为无法实现元素的调动,所以需要一个辅助栈,...

  • 1.算法-栈和队列

    题目 解题思路 这题需要将原先无序的栈进行排序,变成从栈顶到栈底大到小排序,且只允许申请一个栈,即一个变量来实现,...

  • 数据结构

    知识点:堆栈,队列,排序算法 堆栈: 一.基本概念: 栈顶,栈底,出栈(pop),入栈(push),空栈 1.堆栈...

  • Swift语言实现几个简单算法

    栈队列二分查找插入排序归并排序快速排序 栈 队列 二分查找 二分查找是用于快速查找到目标数据(已排序)的一种查找方...

  • Swift-快速排序

    快速排序作为分治代表,通常实现由三步 数据中选择一个元素作为”基准”(pivot),通常选取最后一个元素; 分区(...

  • swift-数组排序

网友评论

      本文标题:Swift-栈排序

      本文链接:https://www.haomeiwen.com/subject/jquutxtx.html