Ich habe vor kurzem zwei Tests für eine Datenstrukturklasse abgeschlossen und ich habe eine Frage zu O (n) vs O (n^2) falsch zweimal. Ich habe mich gefragt, ob ich Hilfe bekommen könnte, um das Problem zu verstehen. Das Problem ist:Big Oh - O (n) gegen O (n^2)
Angenommen, Algorithmus A hat Laufzeit O (n^2) und Algorithmus B hat Laufzeit O (n). Was können wir über die Laufzeit dieser beiden Algorithmen sagen, wenn n = 17?
a) Wir können nichts über die spezifische Runtimes sagen, wenn n = 17
b) Algorithmus A wird viel schneller als Algorithmus B
c) Algorithmus A läuft viel langsamer als Algorithmus B läuft
Für beide Tests beantwortete ich C basierend auf: https://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions. Ich wusste, dass B aufgrund des angegebenen Links keinen Sinn ergab. Jetzt fange ich an zu denken, dass sein A. Ich denke sein A, weil n klein ist. Wenn das der Fall ist, frage ich mich, wann ist n ausreichend groß genug, dass C wahr wäre.
Die Antwort ist (a). Zu einem bestimmten Zeitpunkt wird der Algorithmus B schneller als der Algorithmus A sein, aber es ist unmöglich, genau zu sagen, wo dieser Kreuzungspunkt ist. Es könnte bei "n = 10" sein. Es könnte bei "n = 10000" sein. Es könnte bei 'n = 10000000000000000000000000000000000000000000000000000000' (oder mehr) sein. – Cornstalks