È molto facile eliminare la tua confusione perché proviene da una singola parola:
O(n) represents the upper bound of the function.
Questo è sbagliato. L'affermazione corretta è:
O(n) represents an upper bound of the function.
La notazione Big-O non significa che la funzione chiamata nella notazione sia upper upper bound , solo che è un limite superiore .
Quando riscriviamo la tua domanda come:
How can we say that O(n) is an upper bound when O(n2) is comparatively bigger bound and O(n3) is much bigger bound?
la domanda diventa chiara. Non ci sono umani più alti di 100 metri; questo è un limite superiore all'altezza umana. 200 metri e 10000000 metri sono anche limiti superiori; l'esistenza di limiti superiori più grandi non significa che un limite superiore più piccolo non sia anche un limite superiore. Nessuno di questi è il minimo superiore .
Ora, nel tuo esempio O (n) capita di essere il limite superiore minimo sulla funzione che tu dai. Ci sono anche limiti superiori più grandi, come si nota, e quindi quelli non sono i limiti minimi .