如题,上代码:
func quick_sort(arr: inout [Int]) {
if arr.count == 0 {
print("Data error")
}
_q_sort(arr: &arr, start: 0, end: arr.count - 1)
}
func _q_sort(arr: inout [Int], start: Int, end: Int) {
if start >= end {
return
}
var i = start
var j = end
let keyValue = arr[i]
if i < j {
while i < j && keyValue <= arr[j] {
j -= 1
}
if i < j {
swap(arr: &arr, i: i, j: j)
}
while i < j && keyValue >= arr[i] {
i += 1
}
if i < j {
swap(arr: &arr, i: i, j: j)
}
}
_q_sort(arr: &arr, start: start, end: j - 1)
_q_sort(arr: &arr, start: i + 1, end: end)
}
func swap(arr: inout [Int], i: Int, j:Int) {
let temp = arr[i]
arr[i] = arr[j]
arr[j] = temp
}