![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
Vergleichen Sie die 2 Code-Varianten für dieselbe ToR:
и:
Könnte dies von ein und derselben Person geschrieben worden sein, die nur etwas mehr als eine Stunde auseinander liegt? Die Handschrift ist fragwürdig )Alexej, du tötest junge Talente...
Dieser Vermarkter ist seit 5 Jahren nicht mehr in der Lage, etwas zu verkaufen... und Sie sagen, er sei ein noch schlechterer Programmierer
Tut mir leid, ich wollte dich nicht umbringen.
:-) wenn man nicht versucht, die Reihenfolge einzuhalten, ist die ZeitO(1), die Gesamtzahl der Schritte aller Schleifen= Arraygröße
zu faul zum Programmieren :-)
1. suchen Sie die ersten 3 von links nach rechts.
2. wenn gefunden, dann von rechts nach links nach einer Nicht-Drei suchen, diese an die Stelle der 3 kopieren.
fortfahren, bis sich 1,2 überschnitten haben, das Feld um die Anzahl der Kopien kürzen.
Im Idealfall ist es genau 1/2 der "Blasensortierung" :-) Wenn Sie statt des Kopierens eine Vertauschung vornehmen, wird die Ausgabe ein teilweise geordnetes Array sein (alle 3 Drittel nach rechts verschoben)
Die Gesamtzahl der Schritte aller Schleifen=Arraygröße ist O(n)-Komplexität.
Wenn das Eingabefeld sortiert ist, wird das gegebene Problem durch binäre Suche gelöst.
Die Komplexität ist O(log(n)) im durchschnittlichen Fall und O(n) im schlechtesten Fall.
Ich habe immer noch den Dreh raus bei Peters Version.
Es ist ziemlich kompakt und funktioniert sogar richtig. Großes Lob an Peter.
Aber in Bezug auf die Geschwindigkeit kommt es erst an zweiter Stelle. Oder den ersten Platz vom Ende her, wenn man das Original nicht mitzählt, das durch die Geschwindigkeitsvariante des Besitzers dieses Threads völlig unbrauchbar ist.
Wie haben Sie es getestet?
Wie haben Sie die Tests durchgeführt?
Studieren Sie den Code.
Es ist schlimm, wenn man zu faul zum Programmieren ist.
Nicht, dass ich faul wäre, aber MT gibt es nur auf VDS, und auf diesen experimentiert man nicht.
darüber:
+- 1 :-) Ich bin in ein paar Tagen aus dem Ferienlager zurück, ich werde es mir ansehen...
ps. außerdem gibt es im Code einen zusätzlichen Schleifeneintrag bei Beendigung... eine Kleinigkeit, aber sie kann entfernt werden
Nicht, dass ich faul wäre, aber MT gibt es nur auf VDS, und auf diesen experimentiert man nicht.
darüber:
+- 1 :-) Ich komme in ein paar Tagen vom Lande zurück, ich werde es mir ansehen...
ps. zusätzlich, in den Code zusätzliche Eingabe in die Schleife am Ende...eine Kleinigkeit, aber kann entfernt werden
Bravo! Nachdem ich ein paar Fehler korrigiert habe, haben Sie mich vom Sockel gestoßen, auch ohne ArrayCopy zu benutzen. Schachmatt. :))
Bravo! Nachdem ich ein paar Fehler korrigiert habe, haben Sie mich vom Sockel gestoßen, auch ohne ArrayCopy zu verwenden. Schachmatt. :))
Obwohl das nicht ganz stimmt, denn das Ausgangsfeld ist ganz anders, nämlich bereits gemischt. Aber es ist trotzdem cool!
Wenn es sich um Zitate handelt, funktioniert das natürlich nicht. Ich stehe wieder auf dem Podium. ))
Ich habe die Art und Weise, wie die Prüfsumme berechnet wird, geändert. Es handelt sich nicht mehr um die einfache Summe aller Elemente, sondern um die Summe (Elementwert)/(Elementnummer).
Und das ist es, was ich bekommen habe: