快速排序法(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)#右序列