• 快排算法的深入理解


    简述

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

    实例说明

    代码:

     

    def kuaiPai(num):
        da,zhong,xiao = [],[],[]
        #如果没有条件条件限制会报错“IndexError: list index out of range”
        #新的递归da或xiao数组赋给num;
        #小于1说明是最后一次递归return num而不是最后一次递归的数据
        if len(num)<1:
            return num
        pivo = num[0]
        for i in range(len(num)):
            if num[i] > pivo:
                da.append(num[i])
            elif num[i] < pivo:
                xiao.append(num[i])
            else:
                zhong.append(num[i])
        less = kuaiPai(xiao)
        more = kuaiPai(da)
        return less+zhong+more
    print(kuaiPai(num=[8,2,3,1,5,2]))

     

     

    图解

    转载引用请标明出处,本博出自喝了少不如不喝的博客https://home.cnblogs.com/u/wangdadada
  • 相关阅读:
    稀疏数组
    队列
    链表

    递归
    排序
    查找
    postman设置环境变量
    postman获取全局
    iframe页面刷新问题
  • 原文地址:https://www.cnblogs.com/wangdadada/p/12101277.html
Copyright © 2020-2023  润新知