美文网首页
排序算法之插入排序

排序算法之插入排序

作者: 西风那个吹呀吹 | 来源:发表于2020-09-28 20:19 被阅读0次

原理:

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

相关文章

网友评论

      本文标题:排序算法之插入排序

      本文链接:https://www.haomeiwen.com/subject/htfhuktx.html