Die Quelle dieser Frage stammt aus einem Grundstudiengang, der eine Einführung in die Analyse von Algorithmen umfasst. Dies ist keine Hausaufgabe, sondern eine in CLRS gestellte Frage.
Sie haben eine langsame Maschine mit MIPS und eine schnelle Maschine mit y MIPS. Sie haben auch zwei Algorithmen derselben Klasse, aber unterschiedliche Laufzeitkomplexitäten: Ein "langsamer" Algorithmus läuft bei T ( n ) = c 1 n 2, während ein "schneller" Algorithmus bei T ( n ) = c 2 n log n läuft .
Sie führen den langsamen Algorithmus auf der schnellen Maschine und den schnellen Algorithmus auf der langsamen Maschine aus. Was ist der größte Wert von n, so dass die schnelle Maschine, auf der der langsame Algorithmus ausgeführt wird, die langsame Maschine schlägt, auf der der schnelle Algorithmus ausgeführt wird?
Meine bisherige Lösung:
Finden Sie die Menge aller so, dass c 2 n log n ist wobeineine natürliche Zahl ist.
Dies ist meine bisherige Arbeit:
Die einzige Lösung, die mir jetzt in den Sinn kommt, besteht darin, alle Werte von tuckern, bis ich das erste n finde, wo
hält nicht mehr.
Antworten:
Betrachten Sie Ihre letzte Ungleichung:
und herauszufinden, welcher Algorithmus in welchem Intervall schneller ist, indem einfach die jeweiligen Funktionswerte zu einem bestimmten Zeitpunkt im jeweiligen Intervall berechnet werden.
quelle