Op dinsdag 23 oktober 2001 14:57 schreef Rukapul het volgende:
Ik hoop dat niemand die in deze thread gereageerd heeft een aan informatica gerelateerde studie doet. In dat geval had degene namelijk moeten weten dat je het probleem zonder SEEK op kan lossen en dat je elk karakter maar 1 maal hoeft te bekijken als je een eindige automaat maakt (kan geautomatiseerd) van je zoekstring. Dit staat in direct verband met reguliere expressies.
Een zoektocht in de boeken of google op pattern matching etc levert misschien ook nog wel wat op.
Een eindige automaat maken van een simpele zoekstring is echt bullshit... dat is alleen handig als je echt reguliere expressies gaat gebruiken.
Een handig zoek algoritme waarbij je niet eens alle tekens bekijkt is als je steeds achteraan de zoekstring begint.
Even kijken, hoe kan ik dat het beste uitleggen...
Stel je zoekt op "abcdefg" in de string "qwertyuiopabcdefghjk"
Je kunt natuurlijk bij de 'q' beginnen, en dan kijken of ie gelijk is aan de 'a', en als ze gelijk zijn het volgende teken vergelijken met het volgende teken in de zoekstring, en anders moet je het volgende teken vergelijken met het eerste teken van de zoekstring.
Wat handiger is, is als je bij het 7e teken begint in de string (de 'u') en die vergelijken met het laatste teken van de zoekstring (de 'g'). Als die gelijk zijn moet je 6 tekens terug om te kijken of ie klopt, maar als ze NIET gelijk zijn dan kun je gelijk 7 tekens verder schuiven, aangezien de 'u' nergens in 'abcdefg' voorkomt. Komt ie er wel in voor dan moet je een x aantal tekens terug gaan, waarbij x het hoeveelste teken is dat 'u' in de zoekstring voorkomt.
Ja ik weet het, mijn uitleg suckt, maar misschien is het toch wel duidelijk wat ik bedoel