快速排序的python实现
程序员文章站
2022-03-27 21:28:20
快速排序的python实现快速排序的时间复杂度为O(n log(n)),可以用这种办法来记忆算法:将当前排列的数字中选出一个数字(例如第一个)为基准flag, 剩下的数字分为两组, 比flag大的, 比flag小的(这部分时间复杂度为O(n)). 再对剩下的部分执行同样操作(这部分时间复杂度为O(n log(n)))[因为采用了二分法]需要注意的是何时可以结束递归: 排列的长度为0, 1时都可以, 这里要仔细分析代码实现def qsort (L): if len(L):...
快速排序的python实现
快速排序的时间复杂度为O(n log(n))
,可以用这种办法来记忆算法:
将当前排列的数字中选出一个数字(例如第一个)为基准flag, 剩下的数字分为两组, 比flag大的, 比flag小的(这部分时间复杂度为O(n)
). 再对剩下的部分执行同样操作(这部分时间复杂度为O(n log(n))
)[因为采用了二分法]
需要注意的是何时可以结束递归: 排列的长度为0, 1时都可以, 这里要仔细分析
代码实现
def qsort (L):
if len(L):
l_min = [x for x in L[1:] if x < L[0]]
l_max = [x for x in L[1:] if x >= L[0]]
return qsort(l_min) + [L[0]] + qsort(l_max)
else:
return []
本文地址:https://blog.csdn.net/albert_fifth/article/details/110455611
上一篇: 小雷语里显露大生活
下一篇: KNN算法思想及算法描述和优缺点