如果我有执行这些关键操作的方法:
因此此方法的时间复杂度应为...O(n)* O(nLog(n))* O(1)= n ^ 2 Log(n)
Q:我的方法的时间复杂度是否等于O(n ^ 2),因为我们考虑了最大多项式?
Q:空间= [从bst进行数组转换] O(n)+ O(n)[mergesort] = O(n)空间复杂度吗?
这三个操作没有嵌套。依次完成(一个接一个)
任何想法?
将二进制搜索树转换为数组的算法的对于任何树遍历(?),使用顺序遍历O(n)将二进制搜索树转换为数组
最佳时间复杂度为O(n)。
然后在数组上执行100次O(1)(恒定时间?)的for循环迭代
取决于数组的大小。如果数组的大小是常数,是的,时间复杂度将是O(1),但是我怀疑数组的大小是N,在这种情况下,时间复杂度将是O (n)。
因此此方法的时间复杂度应为... O(n)* O(nLog(n))* O(1)= n ^ 2 Log(n)
Q1。如果按顺序进行操作,则应将其汇总。总时间复杂度为O(n)+ O(nLog(n))+ O(n)= O(nLog(n))
Q2。 O(n)+ O(n)= O(n)的存储复杂度是正确的(假设等式的左边对您的算法是正确的)。
P.S您可以通过遍历二进制搜索树来遍历in order,从而消除了遍历二进制数组的需要,从而使方法O(n)的总时间复杂度。]