快速排序法(Python实现)

快排的原理

快速排序的重点在于将一个列表划分为两个子序列,其中一个子序列是的值全部小于基准值Pivot,另外一个子序列全部大于基准值Pivot;然后,将左边的子序列再分为两个序列,右边的序列也是,就这样不停的重复下去,最后得到升序的一个序列。

时间复杂度

快排的时间复杂度在最差的时候是n^2(逆序列),在最好的时候是n(logn)。

附上python实现代码:

def Quicksort(list,L,R):

    if (L>=R):
        return
    left = L
    right = R
    pivot = list[left]#basic number
    while (left < right):
        while (left < right and list[right]>=pivot):
            right -= 1
        if (left < right ):
            list [left] = list [right]
        while (left < right and list [left]<=pivot):
            left +=1
        if (left<right):
            list [right]=list[left]
        if (left>=right):
            list[left]=pivot
    print (list)
    Quicksort(list,L,right-1)#左序列
    Quicksort(list,right+1,R)#右序列

猜你喜欢

转载自www.cnblogs.com/xsy123/p/12710803.html