插入排序
一开始 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)