Skip to content

Instantly share code, notes, and snippets.

@StevenMasini
Last active June 15, 2017 11:59
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 StevenMasini/b5fff1a3effebef764ca052d4ace31ce to your computer and use it in GitHub Desktop.
Save StevenMasini/b5fff1a3effebef764ca052d4ace31ce to your computer and use it in GitHub Desktop.
My implementation of the Quicksort algorithm in Swift
func quicksort<T: Comparable>(_ arr: [T]) -> [T] {
guard arr.count > 1 else {
return arr
}
let pivot = arr[arr.count / 2]
var left = [T]()
var equal = [T]()
var right = [T]()
for i in 0 ..< arr.count {
if arr[i] < pivot {
left.append(arr[i])
} else if arr[i] == pivot {
equal.append(arr[i])
} else {
right.append(arr[i])
}
}
return quicksort(left) + equal + quicksort(right)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment