Schnelle Suche in Arrays in ST-/SCL-Code

hri

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich möchte in einem Array mit rund 1000 Struktur-Elementen mittels SCL-Code möglichst schnell Einträge finden. In dem ursprünglichen C-Programm verwendete ich dazu hsearch, einer Funktion, die die Suche mittels Hash-Werten effizient durchführte. Bevor ich hsearch selbst in SCL programmiere, frage ich in die Runde, ob jemand von einer entsprechenden Bibliothek Kenntnis hat oder wie andere entsprechend umfangreiche Suchen durchführen.

VG
hri
 
ich kenne hsearch erst mal nicht.
aber wenn du in einem db nach was speziellem suchen willst kommt es erst mal darauf an nach welchen kriterien der db sortiert ist.
ist das unsortiert, bleibt dir nur die sequentielle suche
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich kenne hsearch erst mal nicht.
aber wenn du in einem db nach was speziellem suchen willst kommt es erst mal darauf an nach welchen kriterien der db sortiert ist.
ist das unsortiert, bleibt dir nur die sequentielle suche

Wenn ich's recht im Kopf hab, dann musst du erst zu jedem Array-Eintrag einen hash bilden (hcreate).
Bei hsearch wird dann von deinem Sucheintrag der Hash gebildet und gesucht.
Bei einem SPS-Programm und 1000 Einträgen sehe ich gerade keinen Vorteil gegenüber dem Sortieren des Arrays.
Hängt aber wahrscheinlich von der Art der Daten hab.

Gruß
Blockmove
 
Wenn ich's recht im Kopf hab, dann musst du erst zu jedem Array-Eintrag einen hash bilden (hcreate).
Bei hsearch wird dann von deinem Sucheintrag der Hash gebildet und gesucht.
Bei einem SPS-Programm und 1000 Einträgen sehe ich gerade keinen Vorteil gegenüber dem Sortieren des Arrays.
Hängt aber wahrscheinlich von der Art der Daten hab.

Gruß
Blockmove
Das mit dem Hash bilden stimmt. Unter Umständen kann das Bilden des Hash’s länger dauern als die eigentliche Suche. Sortieren ist in meinem Anwendungsfall aber nicht wirklich effizient, da sich die Einträge häufig zur Laufzeit ändern und dann ständig neu sortiert werden müsste. Hsearch ist wirklich pfeilschnell, ein oder zwei Größenordnungen schneller als eine lineare Suche.
 
Zurück
Oben