Autor Beitrag
Flamefire
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Di 25.08.09 22:10 
Hi,
ich bräuchte mal ein stück code, mitdem ich ein einfaches (1D), dynamisches Integer array nach einem wert durchsuchen kann
die werte werden nach und nach eingefügt.
es soll aber häufiger (wärend des einfügens) geprüft werden, ob ein bestimmter wert schon existiert.
eine lineare suche ist mir zu langsam...

ich kenne die möglichkeiten die es gibt (binärbaum aufstellen, AVL-Baum usw...) hätte diesmal aber gern einfach nen stück code, dass ich einfügen kann, falls das jmd rum liegen hat, oder weiß wo es steht ;-)
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Di 25.08.09 22:20 
Über wie viele Einträge reden wir hier?
Und, sind diese irgendwie sortiert, oder liegen die Werte wild durcheinander?

_________________
PROGRAMMER: A device for converting coffee into software.
Flamefire Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1207
Erhaltene Danke: 31

Win 10
Delphi 2009 Pro, C++ (Visual Studio)
BeitragVerfasst: Di 25.08.09 22:27 
es sind zwischen maximal 4000 und 35000 werte (je nach aktueller aufgabe)
(maximal, da ja die werte nach und nach geschrieben werden)

die werte sind überwiegend aufsteigend sortiert, aber nicht vollständig
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Mi 26.08.09 11:05 
user profile iconFlamefire hat folgendes geschrieben Zum zitierten Posting springen:
die werte sind überwiegend aufsteigend sortiert, aber nicht vollständig


Dann hilft nur eine sequentielle Suche, wie du es jetzt schon machst oder du baust dir in irgendeiner Form einen Index auf.
Für den Index kann man die von dir genannten Bäume oder eine sortierte Indexliste nehmen in der man dann mit einer Binärsuche suchen kann.

Code daszu findest du ziemlich sicher hier im Forum mit Hilfe der Suchfunktion oder auch bei Wikipedia.

Beste Grüße