快排:
s= [6,7,5,4,3,2]
def quicksort(l,r):
i,j = l,r
global s
x= s[l]
if(l<r):
while(i<j):
while(i<j and s[j]>=x):
j -= 1
if(i<j):
s[i] = s[j]
i += 1
while (i<j and s[i]<x):
i += 1
if(i<j):
s[j] = s[i]
j -= 1
s[i] = x
quicksort(l,i-1)
quicksort(i+1,r)
quicksort(0,5)
print(s)
思想:
class Solution:
def sortColors(self, nums: List[int]) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
self.nums = nums
self.quicksort(0,len(nums)-1)
def quicksort(self,l,r):
i ,j = l,r
x = self.nums[l]
if(l<r):
while i<j:
while (i<j) and x <= self.nums[j]:
j -= 1
if (i<j):
self.nums[i] = self.nums[j]
i += 1
while i<j and self.nums[i] < x:
i += 1
if (i<j):
self.nums[j] = self.nums[i]
j -= 1
self.nums[i] = x
self.quicksort(l,i-1)
self.quicksort(i+1,r)