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)#右序列
  • 相关阅读:
    Maximal Square
    Count Complete Tree Nodes
    Rectangle Area
    Implement Stack using Queues
    Basic Calculator
    Invert Binary Tree
    Summary Ranges
    Basic Calculator II
    Majority Element II
    Kth Smallest Element in a BST
  • 原文地址:https://www.cnblogs.com/xsy123/p/12710803.html
Copyright © 2011-2022 走看看