912.排序数组
6种方法对数组进行排序,排序的思想重点在于对数组中数字进行遍历比较,最重要的是快排,快排的思想是取一个数,然后不停的比较后分出前一半后一半,其他的排序大同小异,取一个数字作为中间数比较,然后不停的遍历,改变位置。
class Solution:
def sortArray(self, nums: List[int]) -> List[int]:
def qs(nums, left, right):
temp = nums[(left+right)//2]
i, j = left, right
while i <= j:
while nums[i] < temp: i += 1
while nums[j] > temp: j -= 1
if i <= j:
nums[i], nums[j] = nums[j], nums[i]
i += 1
j -= 1
if i < right: qs(nums, i, right)
if j > left: qs(nums, left, j)
qs(nums, 0, len(nums)-1)
return nums
有一个细节是某一次遍历时,不需要一直的比较每一个,不停的往下走,遇到需要的条件再替换,直到替换完一轮后,再进行递归