目前看到的最容易理解的快排实现方法(swift版本)
func quicksort<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 quicksort(less) + equal + quicksort(greater)
}
快排的时间复杂度是O(nlogn),空间复杂度是O(logn)
网友评论