考虑时间复杂度时,Theta(n)和T(n)之间有什么区别?

时间:2015-09-05 09:15:18

标签: algorithm time-complexity mergesort

教授正在讨论合并排序的时间复杂性,他将整个过程分为三个步骤。

  1. 检查数组的大小是否为1 - >时间复杂度:theta(1)
  2. 他描述了分拣过程 - >时间复杂度:2T(n / 2)
  3. 合并两个分类的序列 - >时间复杂度:theta(n)
  4. 我不明白第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

1 个答案:

答案 0 :(得分:1)

教授在T(n)中的含义是确切的复杂性,即算法需要完成的步骤数,实际上可能因实现而异。更有趣的是asymptotic complexity,此处标记为Θ(n),并显示Tn一起增长的速度。

mergesort算法的第一步是将数组拆分为两半,并使用相同的算法对每一半进行排序(因此是递归的)。该步骤显然需要2T(n/2)。然后合并两个半部(因此名称),它需要线性时间Θ(n)。从该递归定义{{​​1}},他派生出T(n) = 2T(n/2) + Θ(n),这是mergesort算法的复杂性类。