基本概念
- 计算机科学领域的一种教简单排序算法
- 重复走访要排序的数列,一次比较两个元素,如果顺序错误就进行交换,重复的进行直到无需交换,该数列排序结束
- 越大的元素会经由交换慢慢浮至数列顶端
原理
- 比较相邻的元素,如果第一个比第二个大,就进行交换
- 对每一对相邻元素进行上一步操作,然后最后的元素就是最大的
- 然后重复上一步操作,除了最后一个元素
实现
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})
}
网友评论