Monday 7 December 2015

Swift performance: sorting arrays

Swift is now as fast as C by this benchmark using the default release optimisation level [-O].
Here is an in-place quicksort in Swift:
func quicksort_swift(inout a:CInt[], start:Int, end:Int) {
    if (end - start < 2){
        return
    }
    var p = a[start + (end - start)/2]
    var l = start
    var r = end - 1
    while (l <= r){
        if (a[l] < p){
            l += 1
            continue
        }
        if (a[r] > p){
            r -= 1
            continue
        }
        var t = a[l]
        a[l] = a[r]
        a[r] = t
        l += 1
        r -= 1
    }
    quicksort_swift(&a, start, r + 1)
    quicksort_swift(&a, r + 1, end)
}
 
 
 http://stackoverflow.com/questions/24101718/swift-performance-sorting-arrays?rq=1

No comments:

Post a Comment