1、插入排序
原理
就像玩撲克牌蹄溉,右手是無序的牌,右手的牌一張一張摸起來放到左手上您炉,左手永遠是排序好的牌柒爵。
實現(xiàn)代碼
var array = [2,1,4,6,3,2,67,8,54,1] // 定義數(shù)組
for index in 1..<array.count { // 遍歷數(shù)組,從第二個數(shù)開始
var key = array[index] // 第一次循環(huán)獲取第二個數(shù)
var i = index - 1 //此時i為第一個數(shù)
while i >= 0 && array[i] > key {//如果第二個比第一個數(shù)大
array[i + 1] = array[i] //第一個數(shù)賦值給第二個
i -= 1 // i = - 1 循環(huán)退出
}
array[i + 1] = key // 暫存的第二個數(shù)給第一個數(shù)賦值
// index 變大以后會逐個向前比較,如果遇到比它小和比它大的區(qū)間就插進去
}
print(array)
Result : [1, 1, 2, 2, 3, 4, 6, 8, 54, 67]