Ich habe von groß gelesen Notation für Zeitkomplexität und für Zählfunktionen wie die für Primzahlen. Kürzlich las ich auf StackOverflow:
Das Problem bei der Definition der Ausführungsdauer eines Algorithmus besteht darin, dass Sie normalerweise keine Antwort in Millisekunden geben können, da dies von der Maschine abhängt, und Sie können keine Antwort in Taktzyklen oder als Anzahl der Operationen geben, da dies der Fall wäre zu spezifisch für bestimmte Daten, um nützlich zu sein.
https://stackoverflow.com/questions/11806021/how-does-one-calculate-the-runtime-of-an-algorithm
Meine Frage ist, wenn wir einen Algorithmus betrachten, der mit einer bekannten Zeitkomplexität (Polynom, linear usw.) auf einer Maschine läuft, deren Parameter bekannt sind, wie können wir die Laufzeit in Sekunden berechnen? Wie kann im Wesentlichen die Zeitkomplexität für eine bestimmte Maschine in Echtzeit übersetzt werden?
Ich frage, weil ich Fälle gesehen habe, in denen Leute gesagt haben Algorithmus dauert Zeit zu rennen.
Nach dem, was ich nach dem Lesen der Wikipedia-Seite zur Zeitkomplexität verstehe, würde ich denken, dass es sich um den Polynomwert oder die Anzahl der Berechnungen geteilt durch die Anzahl der Berechnungen handelt, die eine bestimmte Maschine pro Zeiteinheit verarbeiten kann. Ist das richtig? Gibt es eine allgemeine Antwort?
Grundsätzlich entstand das Konzept der Zeitkomplexität, als man die Zeitabhängigkeit eines Algorithmus von der Eingabegröße wissen wollte, es aber nie beabsichtigt war, die genaue Laufzeit des Algorithmus zu berechnen. Da es von einer Reihe von Faktoren abhängt, wie Prozessor, Betriebssystem, Prozesse und vielen vielen mehr ..., die nicht alle in Big-O-Notation berücksichtigt werden können, da alle Terme niedrigeren Grades ignoriert werden.
SmileyCraft