func quickSort(_ arr: [Int], _ l : Int, _ r : Int) -> [Int] { var num = arr if l < r { var i = l var j = r var x = num[i] while (i < j) { while (i < j && num[j] >= x) { // 从右向左找到第一个比枢纽小的 j -= 1 } if i < j { num[i] = num[j] //num.swapAt(i,j) i += 1 }
while (i < j && num[i] < x) { // 从左向右找到第一个比枢纽大的 i += 1 } if i < j { //num.swapAt(i,j) num[j] = num[i] j -= 1 } } num[i] = x num = quickSort(num,l,i-1) num = quickSort(num,i+1,r) } return num }