Chapter 34: Quicksort
前言
[ elements < pivot | pivot | elements > pivot ]大綱
Example
public func quicksortNaive<T: Comparable>(_ a: [T]) -> [T] {
guard a.count > 1 else {
return a
}
let pivot = a[a.count / 2]
let less = a.filter { $0 < pivot }
let equal = a.filter { $0 == pivot }
let greater = a.filter { $0 > pivot }
return quicksortNaive(less) + equal + quicksortNaive(greater)
}
Lomuto’s partitioning
Hoare’s partitioning
Median’s partitioning
Dutch national flag partitioning
Last updated