插入排序

173 阅读1分钟

插入排序

一开始 i = 1,j = 0

j 以及它左边的所有元素用于存放已经排序好的。

从第二个元素nums[i]开始,与前面的每个元素 nums[j] 比较, 当 nums[j]nums[i] 小的时候, 把 nums[i] 插入到 nums[j] 之后。(往左边一直找比自己小的元素,类似与打扑克牌时整理手牌)

var nums = [2, 5, 6, 3, 34, 62, 13, 36, 1]
let count = nums.count
for i in 1..<count {
    var j = i - 1
		// find a suitable place to insert
    while j >= 0 {
        if nums[j] < nums[i] {
            break
        }
        j -= 1
    }
    var num = nums.remove(at: i)
    nums.insert(num, at: j+1)
}
print(nums)