extension Array where Element == Int { func qsort() -> [Int] { if self.isEmpty {return []} var xs = self let pivot = xs.removeFirst() let left = xs.filter({$0 < pivot}) let right = xs.filter({$0 > pivot}) return left.qsort() + Array(arrayLiteral: pivot) + right.qsort() } } print([5, 1, 3, 9, 8, 7].qsort()) //=>[1, 3, 5, 7, 8, 9]
Swift 3.1-dev.
※参考
Swift 練習 - Marginalia