#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 将给定数组排序
# @param arr int整型一维数组 待排序的数组
# @return int整型一维数组
#
class Solution:
def MySort(self , arr: List[int]) -> List[int]:
# write code here
def quicksort(nums,left,right):#选取中间元素作为基准
if left>=right:
return
pivot=nums[(left+right)//2]
i,j=left,right #双指针
while i<j:
while nums[i]<pivot:
i+=1
while nums[j]>pivot:
j-=1
if i<=j:
nums[i],nums[j]= nums[j],nums[i]
i+=1
j-=1
if left<j:#j 指向左边那个小于或等于基准的元素的前一个位置,即右边部分的“终点”
quicksort(nums,left,j)
if right>i:#i 指向右边那个大于或等于基准的元素的下一个位置,即左边部分的“起点”
quicksort(nums,i,right)
quicksort(arr, 0, len(arr) - 1)
return arr