比如这个python快排的时间复杂度该怎么算
def q_sort(l):
if len(l)<=1:
return l
else:
return q_sort([x for x in l[1:] if x<l[0]])+[l[0]]+q_sort([x for x in l[1:] if x>=l[0]])
比如这个python快排的时间复杂度该怎么算
def q_sort(l):
if len(l)<=1:
return l
else:
return q_sort([x for x in l[1:] if x<l[0]])+[l[0]]+q_sort([x for x in l[1:] if x>=l[0]])
4 回答4.5k 阅读✓ 已解决
1 回答3.5k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答550 阅读✓ 已解决
1 回答4.6k 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
时间复杂度还是
N * lgN
. 这么看, 把qsort递归看成一棵树, 每一层都处理N
个元素, 树高度lgN
.不过 这个程序 空间上费的多了吧. 貌似也是
N * lgN