Alle dachten, das Thema sei erschöpft, aber dann ...
Ich habe den QuickSort- Sortieralgorithmus für ein Array von Strukturen überarbeitet. Die Quintessenz ist, dass die einfache Anwendung eines einfachen Array-Sortieralgorithmus zum Sortieren eines Arrays von Strukturen zur "physischen" Bewegung großer Datenmengen führt. Um dies zu vermeiden, habe ich eine Indextabelle verwendet, in der alle Permutationen vorgenommen werden. Gleichzeitig habe ich andere Code-Optimierungen verwendet. Um die Universalität für verschiedene Typen zu erhalten, habe ich einen Makro-Wrapper von fxsaber verwendet.
Infolgedessen dauerte das Sortieren des Arrays MqlRates[30000] nach 8 Feldern etwa 3600 ms statt 14900 ms. Das ist eine Beschleunigung von mehr als 4x. Ich habe die Sortierergebnisse nicht genau überprüft, ließ es auf Betatester fallen.
Danke: natürlich fxsaber für den universellen Code.
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.
Warum? Haben wir dafür ein eigenes Thema?
Gute Idee ))))
Wir sollten ein Themamit dem Titel "Chickenshit" starten... " )))))
Alle dachten, das Thema sei erschöpft, aber dann ...
Ich habe den QuickSort- Sortieralgorithmus für ein Array von Strukturen überarbeitet. Die Quintessenz ist, dass die einfache Anwendung eines einfachen Array-Sortieralgorithmus zum Sortieren eines Arrays von Strukturen zur "physischen" Bewegung großer Datenmengen führt. Um dies zu vermeiden, habe ich eine Indextabelle verwendet, in der alle Permutationen vorgenommen werden. Gleichzeitig habe ich andere Code-Optimierungen verwendet. Um die Universalität für verschiedene Typen zu erhalten, habe ich einen Makro-Wrapper von fxsaber verwendet.
Infolgedessen dauerte das Sortieren des Arrays MqlRates[30000] nach 8 Feldern etwa 3600 ms statt 14900 ms. Das ist eine Beschleunigung von mehr als 4x. Ich habe die Sortierergebnisse nicht genau überprüft, ließ es auf Betatester fallen.
Danke: natürlich fxsaber für den universellen Code.
UPD: Wenn es nicht offensichtlich ist, Zugriff auf die oberste Struktur in der sortierten Liste: MqlRates first = Rates[ RatesIdx[0] ];