Skip to content

Instantly share code, notes, and snippets.

@penk
Created December 11, 2015 11:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save penk/5bc51d7305e45ebeb057 to your computer and use it in GitHub Desktop.
Save penk/5bc51d7305e45ebeb057 to your computer and use it in GitHub Desktop.
$ cat test.swift
cat test.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:start, end:r + 1)
quicksort_swift(&a, start:r + 1, end:end)
}
var a_swift:[CInt] = [0,5,2,8,1234,-1,2, 2983, 2023, 2, 0, -1, 343, -37, 5, 2, 39483, -193]
quicksort_swift(&a_swift, start:0, end:a_swift.count)
## Ubuntu 15.10
$ swiftc -O test.swift -o test
$ time ./test
real 0m0.014s
user 0m0.008s
sys 0m0.008s
## Mac OSX 10.11.1
$ swiftc -O test.swift -o test
$ time ./test
real 0m0.015s
user 0m0.005s
sys 0m0.005s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment