durchsuchen von dyn. Array of Record mit Textfeldern

Für Fragen von Einsteigern und Programmieranfängern...
wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: durchsuchen von dyn. Array of Record mit Textfeldern

Beitrag von wp_xyz »

Wegen der unterschiedlichen Testbedingungen hatte ich mich schon gewundert. Jetzt musst du noch erklären, warum dein hash-algorithmus 10x schneller ist als AVLTree.

Nachdem du jetzt den Such-Key als eigenen Record zur Verfügung stellst, kann man die Suche-Function etwas einfach gestalten, aber das bringt nur ein paar Prozent:

Code: Alles auswählen

function Suche(const AKey: keyty): Ps_rec;
var
//  item: s_rec;
  node: TAVLTreeNode;
begin
  //item.Key:= AKey;
//  node := myArray.Find(@item);
  node := myArray.Find(@AKey);
  if node = nil then
    Result := nil else
    Result := Ps_rec(node.Data);
end;

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: durchsuchen von dyn. Array of Record mit Textfeldern

Beitrag von mse »

AVLtree ist vergleichbar mit Binärer Suche, beide haben die Komplexität O(log n). Hash Systeme haben O(1).

https://de.wikipedia.org/wiki/Bin%C3%A4re_Suche
https://de.wikipedia.org/wiki/Hashtabelle

Die MSEgui Hashtabelle ist auch recht effizient implementiert.

BitRausch
Beiträge: 50
Registriert: Di 30. Mai 2017, 09:32

Re: durchsuchen von dyn. Array of Record mit Textfeldern

Beitrag von BitRausch »

Hallo zusammen,

erstmal vielen Dank für Eure sehr coole Unterstützung!! Hab einiges gelernt!!

Ich habe den dyn. Array Ansatzt in der Zwischenzeit gegen TFPGObjectList (nachdem ich es verstanden hatte :idea: ) ausgetauscht. Auch die Records habe ich gegen Klassen getauscht... :D
Ich finde die Anwendung und der Code ist dadurch besser/einfacher geworden.
Das Thema Sort und Find ist noch in Arbeit...

Ich habe noch eine Verständnisfrage die aber nicht zum Thread passt. Werde diese in einem neuem Thread stellen...

Antworten