编辑代码

let origin = [1, 3, 43, 54, 99, 8, 7, 12, 6, 5]

func quickSort(_ array: [Int]) {
    guard array.count > 1 else {
        print("Wrong input")
        return
    }

    var result = array

    func quick_sort(_ array:inout [Int], _ low: Int, _ high: Int) {
        guard low < high else {
            return
        }
        let pivot = partition(&array, low, high)
        quick_sort(&array, low, pivot - 1)
        quick_sort(&array, pivot + 1, high)
    }

    func partition(_ array: inout [Int], _ low: Int, _ high: Int) -> Int {
        var pivot = low
        let value = array[high]
        for i in low..<high {
            if array[i] > value {
                array.swapAt(i, pivot)
                pivot += 1
            }
        }
        array.swapAt(pivot, high)
        return pivot
    }
    
    quick_sort(&result, 0, result.count - 1)
    print("quick sort result: \(result)")
}

quickSort(origin)