美文网首页
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-栈排序

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