快排算法的深入理解

Posted wangdadada

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快排算法的深入理解相关的知识,希望对你有一定的参考价值。

简述

  给每组数分成小、中、大 三种,利用递归思想进行排序。时间复杂度是n*log2n  (log2n代表2的多少次方等于n),其中log2n代表组数、n*log2n代表所有数的对换次数所用的时间。

实例说明

代码:

def kuaiPai(num):

    da,zhong,xiao=[],[],[]

    if len(num)<=1:

        return num

    pivo=num[0]

    for i in range(len(num)):

        if i>num[0]:

            da.append(i)

        elif i<num[0]:

            xiao.append(i)

        else:

            zhong.append(i)

    less=kuaiPai(xiao)

    more =kuaiPai(da)

    return less+zhong+more

图解

技术图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

技术图片

以上是关于快排算法的深入理解的主要内容,如果未能解决你的问题,请参考以下文章

深入理解RSA算法

深入理解遗传算法系列文章

带你深入理解 归并排序

深入理解Activity启动流程–Activity Task的调度算法

《深入理解Java虚拟机》读后笔记-垃圾收集算法

《深入理解Java虚拟机》读后笔记-垃圾收集算法