Die äußere foreach
wird ausgeführt n = | c1
| Zeiten (wobei | x | die Größe von c1
ist), während der innere foreach
m = | ausgeführt wird c2
| mal. Das ist O (n * m) mal insgesamt.
wie würde ich vertrete einfache Algorithmen mit folgenden Komplexität?
Dies ist das gleiche wie O (n^2). Etwas, das O (n^2) Zeit braucht, wäre ein Toast mit jeder anderen Person auf einer Party, unter der Annahme, dass immer genau zwei Personen auf einen Toast anstoßen und nur eine Person gleichzeitig röstet.
Gleiche wie oben ist; der O (n^2) -Term dominiert. Ein anderes Beispiel für eine O (n^2) -Aufgabe ist das Pflanzen von Bäumen in einem quadratischen Garten der Länge n
, vorausgesetzt, dass es dauernd dauert, um jeden Baum zu pflanzen, und dass, sobald Sie einen Baum pflanzen, andere Bäume aus seiner Umgebung ausgeschlossen sind.
Ein Beispiel hierfür wäre ein Wort in einem Wörterbuch werden finden, indem sie wiederholt den Mittelpunkt der Region von Seiten Kommissionierung Sie neben suchen müssen. (Mit anderen Worten, eine binäre Suche.)
Verwenden Sie den obigen Algorithmus, aber jetzt haben Sie jedes Wort im Wörterbuch zu finden.
Das ist eine fantastische Erklärung. Obwohl Sie ein One-Liner sind, hat Ihre Erklärung von O (n log n) wirklich geklickt. –