美文网首页
冒泡排序

冒泡排序

作者: child_cool | 来源:发表于2018-08-04 11:15 被阅读20次

    基本概念

    • 计算机科学领域的一种教简单排序算法
    • 重复走访要排序的数列,一次比较两个元素,如果顺序错误就进行交换,重复的进行直到无需交换,该数列排序结束
    • 越大的元素会经由交换慢慢浮至数列顶端

    原理

    • 比较相邻的元素,如果第一个比第二个大,就进行交换
    • 对每一对相邻元素进行上一步操作,然后最后的元素就是最大的
    • 然后重复上一步操作,除了最后一个元素
    image.png

    实现

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
            print(bubbleSort([1,9,4,3,6,8]))
        }
        
        func bubbleSort(_ array: [Int]) -> [Int]{
            var newArr = [Int]()
            newArr.append(contentsOf: array)
            for i in 0..<newArr.count {
                for j in i+1..<newArr.count {
                    if newArr[i] > newArr[j] {
                        // 位置交换
                        newArr.swapAt(i, j)
                    }
                }
            }
            return newArr
        }
    
    
    /// 使用系统的排序方法
    func bubbleSort(_ array: [Int], sort: Bool = true) -> [Int]{
            if sort == true {
                return array.sorted()
            }
            return array.sorted(by: {$0 < $1})
        }
    

    相关文章

      网友评论

          本文标题:冒泡排序

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