Ich habe nicht einmal die "Prüfsumme" erwähnt, wenn es einen Benchmark gibt.
Man kann sich an die Asymptotik erinnern, mit der die Geschwindigkeit schließlich geschätzt wird. Und dass dies von der Menge der Eingabedaten, der Anzahl der zu entfernenden Elemente und ihrer Lage/Verteilung (die in Wirklichkeit NIE gleichmäßig ist) abhängt.
und dass Diagramme gezeichnet werden können/sollen.
das Ziel ist sicherlich nicht den Aufwand wert, aber irgendwie sollte die Methodik befolgt werden
Ich könnte noch zwei oder drei Seiten weitermachen :-)
Ich habe Ihren Code überprüft. Sie haben alles richtig gemacht.
Ich verstehe nur nicht, warum diese Zeile den größten Teil meiner Zeit in Anspruch nimmt:
//+------------------------------------------------------------------+int PeterArray(int &Arr[],constint val) // вариант Peter Konow
{
int deleted=0,q=0;
for(int a1=0; a1<ArraySize(Arr); a1++)
{
if(deleted)Arr[q]=Arr[q+deleted];
if(Arr[q]==val){deleted++; q--;} <-----------Выполнение этих операций занимает кучу времени.
q++;
}
ArrayResize(Arr,q);
return (q);
}
//+------------------------------------------------------------------+
Ohne diese Zeile läuft der Code in 2 Mikrosekunden. Aber ohne sie geht es nicht.
Es ist vielleicht nicht die schnellste Lösung, aber eine der prägnantesten.
SZY: Sie haben einen Fehler gemacht, als Sie die Funktion nach meiner Lösung geschrieben haben:
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Mach dich nicht über andere lustig
Nicht mal angefangen ;-)
Ich habe nicht einmal die "Prüfsumme" erwähnt, wenn es einen Benchmark gibt.
Man kann sich an die Asymptotik erinnern, mit der die Geschwindigkeit schließlich geschätzt wird.
Und dass dies von der Menge der Eingabedaten, der Anzahl der zu entfernenden Elemente und ihrer Lage/Verteilung (die in Wirklichkeit NIE gleichmäßig ist) abhängt.
und dass Diagramme gezeichnet werden können/sollen.
das Ziel ist sicherlich nicht den Aufwand wert, aber irgendwie sollte die Methodik befolgt werden
Ich könnte noch zwei oder drei Seiten weitermachen :-)
Option für Rotation, Pause und Aufwärmen hinzugefügt (der erste Durchgang wird nicht gezählt)
Ich habe eine Variante mit Rotation, Pausen und Aufwärmen hinzugefügt (der erste Durchgang wird nicht berücksichtigt)
Es ist seltsam, dass viele Beispiele nicht richtig mit Strukturen arbeiten können... Vielleicht verstehe ich etwas nicht...
Es ist seltsam, dass viele Beispiele nicht richtig mit Strukturen arbeiten können... Vielleicht verstehe ich etwas nicht...
Abschaffung der Strukturen zugunsten von Klassen. Sie sind in MQL leichter zu bearbeiten.
Es ist seltsam, dass viele Beispiele nicht richtig mit Strukturen arbeiten können... Vielleicht verstehe ich es nicht...
Wie meinen Sie das? Ich weiß nicht, was Sie meinen. Welche Beispiele funktionieren nicht richtig? Alles funktioniert.
Es ist seltsam, dass viele Beispiele nicht richtig mit Strukturen arbeiten können... Vielleicht verstehe ich etwas nicht...
Die Funktionen wissen nicht, welches Feld der Struktur verglichen werden soll.
Die Funktion weiß nicht, welches Feld der Struktur verglichen werden soll.
Die Funktion ist feldweise vergleichend. Das Ergebnis ist, dass das letzte Element im Array aus irgendeinem Grund gelöscht wird.
Studieren Sie den Code.
Ich habe Ihren Code überprüft. Sie haben alles richtig gemacht.
Ich verstehe nur nicht, warum diese Zeile den größten Teil meiner Zeit in Anspruch nimmt:
Ohne diese Zeile läuft der Code in 2 Mikrosekunden. Aber ohne sie geht es nicht.
Es ist vielleicht nicht die schnellste Lösung, aber eine der prägnantesten.
SZY: Sie haben einen Fehler gemacht, als Sie die Funktion nach meiner Lösung geschrieben haben:
Meine Funktion ist nicht
ArrayResize(Arr,q);а
Aber trotzdem danke.
Die Funktion vergleicht Felder. Das Ergebnis ist, dass aus irgendeinem Grund das letzte Element im Array gelöscht wird.
Bei der Zuweisung eines Elements zu einem anderen, d. h. bei der Verwendung des Zeichens "="?
Ich habe festgestellt, dass es besser ist, selbst zu kopieren. Man kann sich auf nichts verlassen.