• 快速排序法(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)#右序列
  • 相关阅读:
    HDU
    C# Stopwatch
    RMQ(Range Minimum Query)问题(转)
    HDU
    POJ
    HDU
    POJ
    POJ
    docker安装testlink
    廖雪峰Java2面向对象编程-3继承和多态-2多态
  • 原文地址:https://www.cnblogs.com/xsy123/p/12710803.html
Copyright © 2020-2023  润新知