Algorithmus zur Suche eines Wortes in einem Text

  • Themenstarter Themenstarter Markuss
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Markuss

Gast
Ich habe eine für mich schwierige Aufgabe , wer hat eine Ahnung?

Implementieren Sie ein Verfahren zur Suche eines Wortes in einem Text. Ihre Funktion soll
als Eingabe den Text, in dem gesucht werden soll, und das Wort, dessen Position gesucht ist,
erwarten. Es soll die erste Position des Wortes im Text zurückliefern, oder -1 falls das Wort
nicht im Text enthalten ist.
Vorgehensweise: Der Algorithmus soll an der ersten Stelle des Textes beginnend den Text durchlaufen
und jedesmal überprüfen, ob dasWort an dieser Stelle steht. Dazu sind zwei geschachtelte
Schleifen notwendig. Die äussere Schleife iteriert über den Text und die innere über das Wort.
a) Implementieren Sie den Algorithmus unter Verwendung von fo r-Schleifen.
b) Implementieren Sie den Algorithmus unter Verwendung von whil e-Schleifen.
c) Implementieren Sie den Algorithmus unter Verwendung von d o

auf die Verwendung von brea k und continu e soll verzichtet werden . Testen Sie ihre Algorithmen
an dem Satz: ,,Drei reiche Reisende steigen im Reichshof ab." Suchen Sie in
diesem Satz nach dem ersten Vorkommen des (Teil-)Wortes ,,Reis" und geben Sie die Anfangsposition
des Wortes im Satz aus.
Anmerkung: Der Algorithmus soll nicht auf die Such- und Teilstring-Funktionen der Java-
Standart-Bibliothek zurückgreifen. Alle anderen Funktionen sind erlaubt, insbesondere die Methode
toCharArray()
 
wie machen hier keine hausaufgaben!!
frag nochmal wenn du eine konkrete frage oder einen ansatz hast.
hier kleine hilfe:
benutze String.toCharArray() um suchstring und den anderen in ein char array zu bekommen, gehe mit ner for schleife jedes einzelne zeichen durch und wenn ein zeichen mit dem ersten des suchstrings übereinstimmt dann guck weiter ob die andern auch übereinstimmen.


oder du guckst einfach in den source von String und kopierst den sourcecode aus der methode indexOf()
 
oder du trumpfst mit Algorithemn wie Knuth - Morris - Pratt oder Suffix Tries 😉

nein - das was Roar sagt ist einfacher....
 
schau dir zum beispiel mal den stringtokenizer in der api an!!


Code:
int counter=0;

String aString = "word1 word2 word3";
    StringTokenizer parser = new StringTokenizer(aString);
   
     while (parser.hasMoreTokens()) {
        String word=pasrer.nextToken());
        
         if(word.equals(eingabewort)){
             system.out.println(counter)
         }
        counter++    
}

so in der art 🙂

gruß
 
Ich muss in der Aufgabe beweisen ,dass O(c f)=O(f)gilt

und
dass O(f1+f2)=O(f1) N O(f2)gilt


Hinweis die zahlen bei f sind untengestellt


ich habe keine ahnung wie das funktionieren soll, vielleicht kann mir dabei jemanden helfen.


ich danke schon euch voraus
 
such doch mal ein wenig bei google bzgl Komplexität... lösen werden wir das hier nicht !!

Tipp zum ersten: c ist eine konstante... f ist die Anzahl der elemente... was passiert wenn du f gegen unendlich laufen lässt ....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben