[Archiv!] Reine Mathematik, Physik, Chemie usw.: Gehirntrainingsprobleme, die in keiner Weise mit dem Handel zusammenhängen - Seite 584
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
In einem Durchgang:
Erstellen Sie eine leere Kopie eines Arrays der gleichen Größe, initialisieren Sie es mit Twos.
Beginnen Sie am Anfang des Feldes. Begegnung 1 - von Anfang an in die Kopie schreiben, Begegnung 3 - von Ende an in die Kopie schreiben.
Außerdem müssen Sie gleichzeitig drei Zeiger überwachen!
Ich werde Ihnen eine kleine Aufgabe geben.
Natürlich ist es ein Hack, aber bei Vorstellungsgesprächen wirkt es wie eine Apotheose des Wissens über die Sortierung von Arrays ))
Die Aufgabe für das Sortieren ist also
Es gibt eine Reihe von N Zellen, in denen die Einsen, Zweier und Dreier in zufälliger Reihenfolge angeordnet sind.
Erstellen Sie den besten Sortieralgorithmus.
Zählen Sie in einem Durchgang, füllen Sie das Feld im zweiten Durchgang aus.
In einem Durchgang:
Erstellen Sie eine leere Kopie eines Arrays der gleichen Größe, initialisieren Sie es mit Twos.
Beginnen Sie am Anfang des Feldes. Wird 1 angetroffen, wird die Kopie von Anfang an geschrieben; wird 3 angetroffen, wird die Kopie von Ende an geschrieben.
Ohne Kopie (oder Sie werden sagen, dass das Ausfüllen der Kopie ein separater Pass ist).
n=0, m=0
Beginnen Sie am Anfang des Arrays. Wenn wir 1 treffen - ändern wir es mit dem n-ten Element vom Anfang, ungleich 1 (durch die Konstruktion wird es immer 2 sein), n++; wenn wir 3 treffen - ändern wir es mit dem m-ten Element vom Ende, ungleich 3, m++, und wenn wir 1 treffen, folgen wir den Schritten des ersten Teils.
Ohne Kopie (oder Sie werden sagen, dass das Ausfüllen der Kopie ein separater Pass ist)
n=0, m=0
Wir gehen vom Anfang des Feldes aus. Wenn wir 1 treffen, ändern wir es mit dem n-ten Element vom Anfang ungleich 1 (durch die Konstruktion wird es immer 2 sein), n++; wenn wir 3 treffen, ändern wir es mit dem m-ten Element vom Ende ungleich 3, m++, und wenn wir 1 treffen, verfahren wir wie im ersten Teil beschrieben.
Ohne Kopie (oder Sie werden sagen, dass das Ausfüllen der Kopie ein separater Pass ist)
n=0, m=0
Wir gehen vom Anfang des Feldes aus. Wenn wir auf 1 treffen, ändern wir es mit dem n-ten Element vom Anfang ungleich 1 (durch die Konstruktion wird es immer 2 sein), n++; wenn wir auf 3 treffen, ändern wir es mit dem m-ten Element vom Ende ungleich 3, m++, und wenn wir auf 1 treffen, verfahren wir wie im ersten Teil beschrieben.
Das ist ein guter Weg.
Eine Verringerung der Anzahl der Durchgänge führt nicht immer zu einer Erhöhung der Geschwindigkeit.
A+B=...
Ohne Kopie (oder Sie werden sagen, dass das Ausfüllen der Kopie ein separater Pass ist)
n=0, m=0
Wir gehen vom Anfang des Feldes aus. Wenn wir auf 1 treffen, ändern wir es mit dem n-ten Element vom Anfang ungleich 1 (durch die Konstruktion wird es immer 2 sein), n++; wenn wir auf 3 treffen, ändern wir es mit dem m-ten Element vom Ende ungleich 3, m++, und wenn wir auf 1 treffen, verfahren wir wie im ersten Teil beschrieben.
Eine gute Idee.