Einfachen Algorithmus für das finden von maximum und minimum der Werte
Ist kein code erforderlich, nur einfache Mathematik-Theorie.
Wie:
- print "geben Sie Ihr Alter ein"
- Lesen(Alter)
- wenn Alters - >20
- Ergebnis="Erwachsene"
- print"Sie sind"
- print(Ergebnis)
Werde ich besuchen Sprache C Klassen aber vorher möchte ich, um zu lernen einige Grundlagen.
Ich brauche ein Programm/Algorithmus, der feststellt, maximum und minimum der drei zahlen mit mehrere-wenn oder verschachtelt-wenn.
- stellen Sie sich vor Sie werfen drei Würfel, wie würden Sie finden die max-und min-Werte verwenden Sie zwei Hände und zwei Augen ? Wenn Sie es tun können, dann schreiben Sie einen Algorithmus 🙂
- Ich weiß nicht, was der pseudo-code zu tun hat mit der Frage-Titel, aber es ist nützlich, zu beachten, dass
min(a,b,c) = min(min(a,b),c)
, so dass Sie wirklich brauchen nur einmin()
Funktion/makro, die Griffe, die zwei Elemente (max()
ähnlich). Das würde hässlich werden für eine längere Liste, aber für nur drei Positionen, das ist wohl der einfachste Ansatz.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es die einfache Möglichkeit:
Dort ist der Weg mit der minimalen Anzahl der Vergleiche:
Dort ist der Weg mit den wenigsten Zeilen code Dank der ternärer operator:
Gibt es die Möglichkeit twalberg erwähnt in den Kommentaren:
max kann definiert werden, in all diesen Möglichkeiten zu ersetzen
<
mit>
. Sie können auch definieren in Bezug aufmin
:Wenn Sie nicht wollen, um zu lernen, wie zu erklären, die Funktionen besitzen, können Sie Sie einfach einige dieser gerade in Ihrer wichtigsten Funktion. Zum Beispiel, ist die zweite Methode:
Gegeben, das problem Anforderungen es gibt zwei Auswirkungen, die bestimmen, die beste Lösung des Problems:
Wäre es etwas wie das:
Hinweis: Dies ist nicht C; es ist Javascript. Jedoch, für solch ein Allgemeines problem, die Lektionen sind die gleichen - und, in der Tat, wegen der syntaktischen ähnlichkeiten, die viel von der gleichen code, der verwendet werden kann in eine äquivalente C performance-test.
In in diesem JSPerf, ich habe vier Methoden zum abrufen der min/max-von einem array von zahlen. Der erste tut es die einfache Möglichkeit:
Die zweite verwendet einen divide and conquer Ansatz. Dies ist in der Regel eine Verbesserung gegenüber O(n^2) Probleme (z.B., eine Art, in denen jeder Wert hat im Vergleich zu jedem anderen Wert über die einfache Umsetzung), aber O(n) Probleme wie diese, nicht gewinnen Sie nichts, und fügt stack-overhead.
Gibt es eine andere version des rekursiven verwendet Indizes zu vermeiden, die Schaffung neuer arrays zur Durchführung der split (Array#slice() erzeugt ein neues array von Daten in dem alten array; Zuweisungen dieser Art können bog Dinge nach unten).
Dann gibt es die native Lösung mit JS Mathe-Bibliothek, die als Bezugspunkt.
Ich habe es in allen gängigen Browsern, so dass etwaige Unterschiede in der JS-engine die Umsetzung könnte sichtbar sein.
Gibt es ein paar Lektionen hier:
Dann gibt es noch die verschachtelte makro-Methode (wie erwähnt von twalberg in den Kommentaren), d.h. lassen Sie den compiler Abbildung von einfachen Konstrukten. Moderne Compiler sind gut.
Die Klammern sind wichtig, um den Vorrang und die Reihenfolge der Operationen Recht.
Auf ein minimum von drei zahlen:
Vier zahlen:
Und so weiter. Dies hat den weiteren Vorteil, dass Sie nicht brauchen andere Formen für ganze zahlen oder reelle zahlen.