PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : such-Algorithmus



Mattburger
23-10-2002, 08:33
Hi,

ich brauche einen Algorithmus, welcher mir eine Zeichenkette innerhalb einer Datei sucht.
Also genau das was grep macht.

Leider fällt mir der Name des Algorithmuses nicht mehr ein und meine Papier-quellen sind bereits vernichtet.
Also wenn sich einer von euch an das Problem im Informatikunterricht / studium oder noch besser selbststudium erinnert.
- Das wäre toll.


Gruesse Mike

p.s. würde ja grep nehmen aber es handelt sich um riesige Datenmengen und ich möchte die Dateien nur einmal anlagnen. Soll eine Statistik-auswertung geben.

Lin728
23-10-2002, 11:36
Servus!

Nun, wenn die Strings in der Datei eine bestimmte geordnete Reihenfolge haben, kannste sie z.B. mit dem Hashverfahren suchen.
Wenn die Zeichenkette einfach irgendwo drinnen steht, müsstest du alles vergleichen.

Mfg

Mattburger
23-10-2002, 12:41
Hi Ceissner,



Wenn die Zeichenkette einfach irgendwo drinnen steht, musst du alles vergleichen, was langsam ist ;-(

Du hast mich verstanden ! :-).

Ich bin mir aber sicher, das es da eine Loesung gibt.
Irgendwas in der Art:
suchstring= "1234567890" = 10 Zeichen
-> vergleiche jedes 10. Zeichen, ob jenes im suchstring enthalten ist.
Wenn nicht, dann springe 10 Zeichen nach vorne.

Das ganze Verfahren hat glaube ich auch einen Namen.

gruebel, gruebel, ....

The Ripper
23-10-2002, 12:57
das ganze hat nicht nur einen namen, es gibt sogar quellcode dazu, die beschreibung hätte allerdings etwas großzügiger ausfallen können...
http://www.pronix.de/ckurs/ckurs255.html

Mattburger
23-10-2002, 15:20
Hi Ripper,

Danke.

MRUNIX war am schnellsten. Hab hier im Office ein paar Kollegen angesprochen. Alle kannten jemanden, der das wissen muesste. MRUNIX (bzw. DU) war jedoch am schnellsten. :D
Werde ab morgen Anfangen das ganze zu realisieren.

Gruesse aus Boeblingen

krabat
23-10-2002, 21:32
hallo,

es gibt auch noch den boyer-moore algorithmus. der wertet von rechts nach links aus, wie du beschrieben hattest. der kmp-algorithmus wertet von links nach rechts aus.

gruss