Heim >Java >javaLernprogramm >Einführung in die Verwendung und Algorithmen von Java-Enumerationen
Wenn Sie den Aufzählungsalgorithmus verwenden möchten, müssen Sie zunächst das Aufzählungsobjekt, den Aufzählungsbereich und die Beurteilungsbedingungen bestimmen . Zählen Sie mögliche Lösungen einzeln auf, überprüfen Sie, ob jede Lösung die Lösung des Problems ist, und verpassen Sie keine mögliche richtige Lösung.
Gib eine Kastanie
#🎜 🎜 #Einhundert Hühner für einhundert Dollar Problem: Es gibt eine Person, die hundert Dollar hat und plant, hundert Hühner zu kaufen. Als ich auf den Markt ging, kostete ein großes Huhn drei Yuan, ein kleines Huhn drei Yuan und ein mittelgroßes Huhn zwei Yuan. Schreiben Sie jetzt bitte ein Programm, das ihm bei der Planung hilft, 100 Hühner für genau 100 Yuan zu kaufen. Wir können den Hahn als x, die Henne als y und das Küken als z festlegen und erhalten die folgende Gleichung: + z/3 = 100; Wenn der Hahn aufgezählt wird, kann der Wert der Henne und des Kükens durch das x des Hahns ausgedrückt werden.
Code:
Der Code im Bild verwendet die dreifache Komplexität der for-Schleifenzeit (falls Sie es nicht wissen). , keine Sorge, Sie werden später mehr darüber erfahren) Schreiben Sie einen Artikel zur Diskussion) ist O(N^3); Wir alle mögen ein Programm, das einfach ist, keinen Platz verbraucht, kurz und prägnant ist und hochwertig aussieht -Ende. Im Folgenden wird die Optimierung vorgestellt.
Optimierung. Routine
#🎜🎜 # Obwohl die Aufzählung ein sehr profitabler Algorithmus ist, können Sie dennoch den Aufzählungsumfang einschränken, um die Effizienz der Problemlösung zu verbessern. Gleichzeitig vermeiden Sie wiederholte Aufzählungen . Schauen wir uns den zweiten Weg an:
x+y+z = 100 ①5x+3y+z/3 = 100 ②Sei ②x3-①
7x+4y = 100
=>y =>y = 25-(7 /4) x ③
Und weil 0
x = 4k ④
Ersetzen von ④ in ③ kann 🎜🎜######= & gt; y = 25-7k ⑤#🎜🎜 ## 🎜🎜#wird ① zu wissen
= & gt; +3K ⑥#🎜 🎜#Um sicherzustellen, dass 0
Dieser Code hat die Basis einer Schleifenschicht erreicht , und die Zeitkomplexität ist O(n); Diese Kastanie führt eine Routine zur Aufzählungsoptimierung ein, die darin besteht, die Variablen der Aufzählung zu reduzieren. Die gesamte Routine zur Optimierung der Aufzählung hat hauptsächlich zwei Aspekte: Der eine besteht darin, die Aufzählungsvariablen zu reduzieren, und der andere darin, den Umfang der Aufzählung zu reduzieren.
Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung und Algorithmen von Java-Enumerationen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!