【问题标题】:What's the difference between Theta(n) and T(n) when considering time complexity?考虑时间复杂度时,Theta(n) 和 T(n) 有什么区别?
【发布时间】:2015-09-05 09:15:17
【问题描述】:

教授在讨论归并排序的时间复杂度,他把整个过程分为三个步骤。

  1. 检查数组的大小是否为1 -> 时间复杂度:theta(1)
  2. 他描述了排序过程->时间复杂度:2T(n/2)
  3. 合并两个排序序列 -> 时间复杂度:theta(n)

我不明白第 2 步,他为什么将其描述为 2T(n/2) 而不是 2Theta(n/2)? theta(n) 和 T(n) 有什么区别?

这是来自 Youtube 的链接:https://www.youtube.com/watch?v=JPyuH4qXLZ0

它在 1:08:45 - 1:10:33 之间

【问题讨论】:

    标签: algorithm time-complexity mergesort


    【解决方案1】:

    T(n) 教授的意思是确切的复杂性,即算法需要完成的步骤数,实际上可能因实现而异。更有趣的是asymptotic complexity,这里表示为Θ(n),它显示了Tn 一起增长的速度。

    mergesort 算法的第一步是将数组分成两半,并使用相同的算法(因此是递归的)对每一半进行排序。这一步显然需要2T(n/2)。然后合并两半(因此得名),这需要线性时间,Θ(n)。从递归定义T(n) = 2T(n/2) + Θ(n) 他推导出T(n) = Θ(nlogn) 这是归并排序算法的复杂性类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 2020-02-14
      • 2014-07-03
      • 1970-01-01
      • 1970-01-01
      • 2012-09-19
      • 1970-01-01
      相关资源
      最近更新 更多