排序算法之插入排序

原理:

在待排序的元素中,假设前面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]

你可能感兴趣的:(排序算法之插入排序)