Les expressions de temps minimum et maximum de temps sont un peu trompeuses ici. Lorsque nous parlons de grand O de notations, c'est ne pas le temps réel qui nous intéresse, c'est comment le temps augmente lors de notre entrée taille devient plus grande. Et c'est généralement à la moyenne ou au pire des cas le temps dont nous parlons, pas dans le meilleur des cas, qui n'est généralement pas significatif dans la résolution de nos problèmes.
À l'aide de la matrice de la recherche dans la accepté de répondre à l'autre question, à titre d'exemple. Le temps qu'il faut pour trouver un numéro dans la liste de taille n est n/2 * some_constant en moyenne. Si vous le traiter comme une fonction f(n) = n/2*some_constant
, il augmente pas plus vite que g(n) = n
, dans le sens donné par Charlie. Aussi, il augmente non plus lent que g(n)
. Par conséquent, g(n)
est en fait à la fois une limite supérieure et une limite inférieure de l' f(n)
en Grande-O notation, de sorte que la complexité de la recherche linéaire est exactement n, c'est-à-Theta(n).
À cet égard, l'explication de la accepté de répondre à l'autre question, c'est pas tout à fait correct, qui prétend que O(n) est la limite supérieure, car l'algorithme peut s'exécuter en temps constant pour certains intrants (c'est le meilleur des cas que j'ai mentionné ci-dessus, ce qui n'est pas vraiment ce que nous voulons savoir sur le temps d'exécution).