swift 算法之冒泡排序
Posted SwiftClub
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 算法之冒泡排序相关的知识,希望对你有一定的参考价值。
冒泡排序是一种排序算法,它通过重复地走过过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样做直到数组完全排序。
平均: O(N^2)
最差: O(N^2)
步骤
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码
func bubleSort(_ numbers: [Int]) -> [Int] {
var nums = numbers
let n = nums.count
for i in 0..<n {
for j in 0..<(n-1-i) {
if nums[j] > nums[j + 1] {
nums.swapAt(j, j+1)
}
}
}
return nums
}
let nums = [3, 42, 1, 5, 34, 20, 9]
bubleSort(nums)
以上是关于swift 算法之冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章