哎,比想象中的花时间啊!
代码这东西,还是保持手感。唯手熟尔。
func sortArray(nums []int) []int {
start := 0
left := 0
right := len(nums) - 1
end := len(nums)
if left >= right || len(nums) <= 1{
return nums
}
pos := (right - left) / 2
mid := nums[pos]
nums[left], nums[pos] = nums[pos], nums[left]
for left < right{
for nums[right] >= mid && left < right{
right--
}
nums[left], nums[right] = nums[right], nums[left]
for nums[left] <= mid && left < right{
left++
}
nums[left], nums[right] = nums[right], nums[left]
}
sortArray(nums[right+1:end])
sortArray(nums[start:left])
return nums
}