LeetCode912 排序数组
class Solution:
def sortArray(self, nums: List[int]) -> List[int]:
import random
def partition(l: int, r: int) -> int:
random_p = random.randint(l, r)
nums[l], nums[random_p] = nums[random_p], nums[l]
tag = l + 1
for i in range(l + 1, r + 1):
if nums[i] < nums[l]:
nums[i], nums[tag], tag = nums[tag], nums[i], tag + 1
nums[tag - 1], nums[l] = nums[l], nums[tag - 1]
return tag - 1
def qsort(l: int, r: int) -> None:
p = partition(l, r)
if p - 1 > l: qsort(l, p - 1)
if r > p + 1: qsort(p + 1, r)
qsort(0, len(nums) - 1)
return nums