快排算法Python代码

快排快排算法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                

运行结果:
运行结果如下
基本思路:

这里写图片描述

猜你喜欢

转载自blog.csdn.net/u012110651/article/details/81812024