AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitkritische Array-Prüfung

Ein Thema von BadenPower · begonnen am 20. Dez 2014 · letzter Beitrag vom 21. Dez 2014
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.819 Beiträge
 
Delphi 12 Athens
 
#1

AW: Zeitkritische Array-Prüfung

  Alt 21. Dez 2014, 14:17
Zitat:
Dann scheidet das Casten auf eine flache, eindimensionale Array-Struktur wohl aus.
Nein, direkt ausfallen tut es nicht.
Ein array of array of array ist ein dynamisches Array und da liegen die einzelnen Zeilen nie hintereinander - schon allein deswegen nicht, weil der Speicher für die interne Verwaltung immer vor dem ersten Element liegt.

Wenn aber eine neue Deklaration für das Array im Rahmen des Möglichen und Erwünschten liegt, dann kann man ja auch gleich ein eindimensionales Array deklarieren und für den indizierten Zugriff eigene Getter und Setter deklarieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Zeitkritische Array-Prüfung

  Alt 21. Dez 2014, 14:35
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 sortiert,
Steht doch alles schon da. Und eine Dictionary ist immer noch schneller als eine sortierte Liste.
Zitat:
O(Max(m, n))
Das gibt es nicht. O ist hier O(n).

Zitat:
... aber dennoch kann es probleme geben, wenn zeitgleich auf den selben Speicherbereich zugegriffen wird.
Das meinte ich ja (neben dem gar nicht so dynamischen Array).

Wenn es denn dynamische Arrays sind, würde ich an den Stellen ansetzen, die diese Arrays erzeugen und dort einfach ein 'Array of Cardinal' anlegen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: Zeitkritische Array-Prüfung

  Alt 21. Dez 2014, 14:53
Ein array of array of array ist ein dynamisches Array und da liegen die einzelnen Zeilen nie hintereinander - schon allein deswegen nicht, weil der Speicher für die interne Verwaltung immer vor dem ersten Element liegt.
Ich hab nichts Anderes behauptet.

Wenn man die maximale Größe kennt, dann könnte man das auch statisch deklarieren und verwendet dann halt nur den ersten Teil der Felder.
Und selbst bei Größenänderung der genutzten Anteile muß man nichtmal was umkopieren, da sich nichts verschiebt.


Einziger Nachteil bleibt im Zugriff/Casten auf das eindimensionale Array, denn entwerder man vergleich immer alles oder man muß Teile überspringen. (bei Letzterem kann man sich den eindimensionalen Zugriff auch sparen und bleibt bei Mehrdimensional)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz