递归函数的时间复杂度应该怎么算?

比如这个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]])
阅读 5.3k
1 个回答

时间复杂度还是 N * lgN. 这么看, 把qsort递归看成一棵树, 每一层都处理 N 个元素, 树高度 lgN.

不过 这个程序 空间上费的多了吧. 貌似也是 N * lgN

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
101 新手上路
子站问答
访问
宣传栏