Swift-希尔排序

希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:
插入排序在对几乎已经排好序的数据操作时, 效率高, 即可以达到线性排序的效率
但插入排序一般来说是低效的, 因为插入排序每次只能将数据移动一位,希尔排序每次移动位数可以通过实际情况来控制,


Swift-希尔排序_第1张图片
希尔排序.gif

核心代码:

` func sort(arr:inout [Int]) {

    let count:Int = arr.count
    var gap:Int = 1
    let base:Int = 3
    while (gap < count / base) {
        gap = base * gap + 1;
    }
    
    while gap > 0 {
        for i in gap..

测试代码:

var arr:[Int] = [10,8,1,5,3,4,9,0,7,11] let shellSort:ShellSort = ShellSort() shellSort.sort(arr: &arr) print("FlyElephant-希尔排序---\(arr)")

你可能感兴趣的:(Swift-希尔排序)