【发布时间】: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