우리는 큰 O 표기법에 대해 알았지 만, 종종 T (n)도 보았습니다. 예를 들면,표기 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 표기법에 대한 위키 백과 문서에서 "입력 집합의 요소 수와 관련하여 알고리즘을 실행하는 데 걸리는 시간 (임의의 시간 측정에서)을 나타내는 함수 T (n)입니다." – James
'T (n)'은 크기 'n'의 데이터를 계산하는 데 필요한 정확한 시간을 나타냅니다. 재귀 함수에 필요한 시간을 계산할 때 매우 유용합니다. – xiaoyi