1、插入排序
原理
就像玩扑克牌,右手是无序的牌,右手的牌一张一张摸起来放到左手上,左手永远是排序好的牌。
实现代码
var array = [2,1,4,6,3,2,67,8,54,1] // 定义数组
for index in 1..<array.count { // 遍历数组,从第二个数开始
var key = array[index] // 第一次循环获取第二个数
var i = index - 1 //此时i为第一个数
while i >= 0 && array[i] > key {//如果第二个比第一个数大
array[i + 1] = array[i] //第一个数赋值给第二个
i -= 1 // i = - 1 循环退出
}
array[i + 1] = key // 暂存的第二个数给第一个数赋值
// index 变大以后会逐个向前比较,如果遇到比它小和比它大的区间就插进去
}
print(array)
Result : [1, 1, 2, 2, 3, 4, 6, 8, 54, 67]
网友评论