@Juhas oj niewiele chyba jednak wiesz :P
algorytm O(1) zadziała szybciej niż O(n^2).
Nic bardziej mylnego, jedno z drugim niewiele ma wspólnego. Rząd złożoności obliczeniowej mówi o tym jak wzrasta czas wykonania algorytmu w zależności od rozmiaru danych wejściowych. Algorytm O(1) działa zawsze tak samo długo. Dla algorytmu O(n) czas rośnie liniowo, więc jeśli np. rozmiar danych zwiększysz 10 razy to czas wykonania wzrośnie ~10 razy. Dla algorytmu O(n^2) czas rośnie kwadratowo, wiec dla 10 razy większych danych algorytm będzie działa już 100 razy dłużej. To oznacza że asymptotycznie dla n -> nieskończoności
algorytm O(1) będzie wolniejszy od O(n^2), ale wcale nie oznacza to że dla wszystkich praktycznych danych taka zależność zachodzi.
Załózmy że masz algorytm wyszukiwania ścieżki w grafie, uzyty np. w nawigacji samochodowej do wytyczania trasy. Jeśli robisz to algorytmem o złożonosci O(1) to niezależnie od tego skąd i dokąd chcesz jechać trasa wyliczy sie w tym samym czasie. Ale jeśli algorytm działa w czasie O(n^3) to czas wytyczania trasy 100 km będzie 1000 razy dłuższy od wytyczania trasy 10 km! Jeśli teraz 10 km obliczało się 1s to na 100km będzie trzeba poczekać prawie 20 minut...