快排算法的深入理解
简述
给每组数分成小、中、大 三种,利用递归思想进行排序。时间复杂度是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