快排的swift实现

目前看到的最容易理解的快排实现方法(swift版本)

func quicksort(_ 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)

你可能感兴趣的:(快排的swift实现)