原理:
在待排序的元素中,假设前面n-1(其中n>=2)个数已经是排好顺序的,
现将第n个数插到前面已经排好的序列中,然后找到合适自己的位置,使得插入第n个数的这个序列也是排好顺序的。
按照此法对所有元素进行插入,直到整个序列排为有序的过程,称为插入排序
Swift代码:
func insertionSort(numbers: inout [Int]) {
if numbers.count < 2 {
return;
}
for i in 1 ..< numbers.count {
let insertValue = numbers[i];
var index = i - 1;
while index >= 0 && numbers[index] > insertValue {
numbers[index+1] = numbers[index];
index -= 1;
}
if index != i - 1 {
numbers[index+1] = insertValue;
}
}
}
示例:
var array = [2,1,5,3,7];
insertionSort(numbers: &array)
//array结果[1, 2, 3, 5, 7]
var array1 = [2,1];
insertionSort(numbers: &array1)
//array1结果[1, 2]
网友评论