swift 算法之冒泡排序

Posted SwiftClub

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了swift 算法之冒泡排序相关的知识,希望对你有一定的参考价值。


冒泡排序是一种排序算法,它通过重复地走过过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来,这样做直到数组完全排序。

平均: O(N^2)
最差: O(N^2)

步骤

  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

  3. 针对所有的元素重复以上的步骤,除了最后一个。

  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


代码


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 算法之冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法之冒泡选择插入排序(Java)

排序算法之冒泡选择插入排序(Java)

Swift的排序算法总结

排序算法之冒泡排序

Java排序算法之冒泡排序

重温基础算法内部排序之冒泡排序法