Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.147 Beiträge
 
Delphi 12 Athens
 
#12

AW: Zeitkritische Array-Prüfung

  Alt 21. Dez 2014, 13:57
Zitat:
Dann scheidet das Casten auf eine flache, eindimensionale Array-Struktur wohl aus.
Nein, direkt ausfallen tut es nicht.

Die maximale Größe ist bekannt und man kann da Array immer mit der maximalen Größe definieren, auch wenn nicht alles verwendet wird. (31 MB sind ja nicht wirklich ein schlimmer Speicherverbrauch > 201*201*201*4)
Man kann auch die 3-dimensionale Struktur auf ein 1-gimensionales Array abbilden. Arr[x + y*Length(Ax) + z*Length(Ay)*Length(Ax)]

Da hier Alles mit Allem verglichen wird, dann kann man das extrem optimieren, indem man beide Arrays soriert, denn dann kann man das Suchmuster so optimieren, daß die Vergleichsoperationen minimiert werden, da man hier parallel durch die Arrays laufen kann, und so nur ähnliche Werte vergleichen muß, was sich bis hin zu O(Max(m, n)) aka O(Max(Mx*My*Mz, Cx*Cy*Cz)) optimieren lässt. (nicht eingerechnet der Aufwand für den Aufbau und das Sortieren der Vergleichdaten)

Zitat:
Ich frag mich dann nur, wie das dann eigentlich funktioniert, wenn sich die Arrays parallel irgendwo spontan ändern...
Solange sich nur der Inhalt ändert, aber nicht die Größe, dann könnte es gehen, aber dennoch kann es probleme geben, wenn zeitgleich auf den selben Speicherbereich zugegriffen wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (21. Dez 2014 um 14:08 Uhr)
  Mit Zitat antworten Zitat