程序员iOS DeveloperiOS学习笔记

swift 冒泡排序

2016-05-17  本文已影响889人  sakuragi

冒泡排序原理

时间复杂度

n(n-1)/2 = O(n²)

算法稳定性

swfit代码

import UIKit
import Foundation

var array  = [Int](count:20,repeatedValue: 0)

for index in 0..<20 {
    array[index] = Int(arc4random_uniform(20)) + 1
}
print("排序前的值")
print(array)
for item in array
{
    var ii = item
    print(ii)
}

for i in 0 ..< array.count {
    for j in 0 ..< array.count - 1 - i {
        if array[j] > array[j+1] {
            var  temp = array[j+1]
            array[j+1] = array[j]
            array[j] = temp
        }
    }
}
print("排序后的值")
print(array)
for item in array
{
    var ii = item
    print(ii)
}

值变化图

在playground中我们可以看见值变化情况

排序前.png
第一次两两比较完.png

此时最大的数已经到了最后,后面就不需要比较了

第二次两两比较完..png

此时第二大的数已经到了倒数第二位,后面就不需要比较了

排序完成.png
上一篇 下一篇

猜你喜欢

热点阅读