美文网首页
冒泡排序

冒泡排序

作者: 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