zoukankan      html  css  js  c++  java
  • 快速排序法(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)#右序列
  • 相关阅读:
    最大子数组1
    大道至简阅读笔记03
    I-think-3
    第3周学习进度
    大道至简阅读笔记02
    四则运算题3
    大道至简阅读笔记01
    第2周学习进度
    构建之法阅读笔记03
    按Right-BICEP的测试用例
  • 原文地址:https://www.cnblogs.com/xsy123/p/12710803.html
Copyright © 2011-2022 走看看