Nous avons appris à propos de la notation grand O, mais je vois aussi souvent T (n). Par exemple,Que signifie la notation 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
Je crois que c, d, e, ... sont supposés être des constantes nommées arbitrairement.
Que signifie T (n/2)? aussi comment est la notation T liée au grand O?
De l'article wikipedia sur la notation O: "Une fonction T (n) qui va exprimer combien de temps l'algorithme prendra pour exécuter (dans une mesure arbitraire du temps) en termes de nombre d'éléments dans l'ensemble d'entrée." – James
'T (n)', indiquant le temps * exact * nécessaire pour calculer les données de taille «n». C'est très utile pour calculer le temps nécessaire à une fonction récursive. – xiaoyi