快排快排算法Python代码
根据同学给的一个cpp程序简单改写,作为学习算法的起步。
def Qsort(nums):
QuickSort(nums,0,len(nums)-1)
print(nums)
def QuickSort(nums,i,j):
if(i<j):
pivot_pos = partition(nums,i,j)
QuickSort(nums, i, pivot_pos-1)
QuickSort(nums, pivot_pos+1, j)
def partition(nums,i,j):
pivot = nums[i]
while(i<j):
while(i<j and nums[j]>=pivot): j-=1
if(i<j):
nums[i] = nums[j]
i+=1
while(i<j and nums[i]<=pivot): i+=1
if(i<j):
nums[j] = nums[i]
j-=1
nums[i] = pivot
return i
运行结果:
基本思路: