给你一个整数数组 nums,请你将该数组升序排列。
示例 1:
输入:nums = [5,2,3,1]
输出:[1,2,3,5]
示例 2:输入:nums = [5,1,1,2,0,0]
输出:[0,0,1,1,2,5]
func sortArray(_ nums: [Int]) -> [Int] {
var ss = nums
quicksort(&ss, 0, nums.count-1)
return ss
}
func quicksort(_ nums: inout [Int], _ l: Int, _ r: Int){
if l < r{
let pos = partition(&nums, l, r)
quicksort(&nums, l, pos-1)
quicksort(&nums, pos+1, r)
}
}
func partition(_ nums: inout [Int], _ l: Int, _ r: Int) -> Int{
let pivot = nums[r]
var i = l
for j in l...r-1 {
if nums[j]<pivot {
nums.swapAt(i, j)
i+=1
}
}
nums[r] = nums[i]
nums[i] = pivot
return i
}