durchsuchen von dyn. Array of Record mit Textfeldern

Für Fragen von Einsteigern und Programmieranfängern...

Re: durchsuchen von dyn. Array of Record mit Textfeldern

Beitragvon wp_xyz » 13. Sep 2017, 18:55 Re: durchsuchen von dyn. Array of Record mit Textfeldern

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;
wp_xyz
 
Beiträge: 2253
Registriert: 8. Apr 2011, 08:01

Beitragvon mse » 13. Sep 2017, 19:13 Re: durchsuchen von dyn. Array of Record mit Textfeldern

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.
mse
 
Beiträge: 1679
Registriert: 16. Okt 2008, 09:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.4.2,git master FPC 3.0,fixes_3_0) | 
CPU-Target: x86,x64,ARM
Nach oben

Beitragvon BitRausch » 25. Sep 2017, 10:29 Re: durchsuchen von dyn. Array of Record mit Textfeldern

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...
BitRausch
 
Beiträge: 50
Registriert: 30. Mai 2017, 08:32

• Themenende •
Vorherige

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried