/Shell-Sort

Shell sort implementation in swift.

Primary LanguageSwift

Shell-Sort

Shell sort implementation in swift.

import Foundation

let arr = [22,7,2,-5,8,400,32,321,1,1,1,2,1,2,23,2141]

func shellSort(var arr:[Int]) -> [Int] {
    
    var inc = arr.count / 2
    
    while inc > 0 {
        for var i = inc; i < arr.count; ++i {
            var j = i
            let temp = arr[i]
            while (j >= inc && arr[j - inc] > temp) {
                arr[j] = arr[j - inc]
                j = j - inc
            }
            arr[j] = temp
        }
        
        if (inc == 2) {
            inc = 1
        } else {
            inc = Int(Double(inc) * (5.0 / 11))
        }
    }
    
    return arr
}

println(shellSort(arr))