【问题标题】:What does the notation T(n) mean?符号 T(n) 是什么意思?
【发布时间】:2012-11-17 01:52:21
【问题描述】:

我们学习了大 O 表示法,但我也经常看到 T(n)。例如,

public static Comparable[] mergeSort(Comparable[] A, int low, int high) {
  if (low < high) { //at least 2 elements?                //cost = c
    int mid = (low + high)/2;                             //cost = d
    Comparable[] A1 = mergeSort(A, low, mid);             //cost = T(n/2) + e
    Comparable[] A2 = mergeSort(A, mid+1, high);          //cost = T(n/2) + f
    return merge(A1,A2);                                  //cost = g n + h
  }
  .... //cost = i

我相信 c,d,e,... 是任意命名的常量。

T(n/2) 是什么意思?还有 T 表示法与大 O 有什么关系?

【问题讨论】:

  • 来自关于 O-notation 的维基百科文章:“一个函数 T(n),它将根据输入集。”
  • T(n),表示计算n大小的数据所需的准确时间。在计算递归函数所需的时间时非常有用。

标签: notation


【解决方案1】:

此表示法指的是函数运行所需的最长时间(或更具体地说,是步数)。

T(n) 可能比 O(n) 更具体;例如,假设您有一个程序,任何输入都需要 n^2+n+1 步骤才能运行:

T(n) = n^2+n+1
O(n) = n^2

更多信息可以在here找到。

【讨论】:

    【解决方案2】:

    我个人以前从未见过这种表示法,但我怀疑它指的是“big-Theta”(Θ),它既是渐近上界 (big-O) 也是渐近下界。

    还相关:Big-Omega (Ω) 仅用于表示渐近下界(镜像 big-O)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-16
      • 2011-04-07
      相关资源
      最近更新 更多