Hallo!
Ich habe wie im Titel schon genannt ein Problem mit dem Bisektionsverfahren.
Ich soll mittels CompareTo in einem Array ein gewisses Word finden (Die Worte dort sind alphabetisch geordnet). Das funktioniert auch. Allerdings soll ich den Index dieses Wortes übermitteln, wo genau sich das Wort befindet also.
Meine Lösung möchte ich hier gerade noch nicht präsentieren, da dies eine bepunktete Hausaufgabe ist und ich vielleicht ein wenig paranoid bin
Ich hoffe, dass man mir diese Frage trotzdem beantworten kann, auch ohne den Code zu kennen.
Ich betrachte das String[] array und schaue eben, ob das Wort in der ersten oder der zweiten Hälfe befindet. Je nachdem wo es ist, halbiere ich das Array und rufe die Funktion erneut rekursiv auf. Jedoch passen dadurch natürlich die Indizes nicht mehr, da ich ja jedes Mal ein neues Array erstelle.
Meine Idee war, zuerst eine int - Variable anzulegen, der ich beim ersten Aufruf den Wert der Arraylänge-1 zuweise. Sollte das Wort in der ersten Hälfte des Arrays stehen, brauche ich nur noch die Halbe länge, somit kann ich meine Variable halbieren. Sollte ich in der zweiten Hälfte das Wort finden, lasse ich die Variable unberührt.
Ich hoffe, ihr versteht was ich meine? Allerdings funktioniert das nicht so wirklich. Hat irgendjemand eine schlaue Idee?
Vielen Dank schon im Voraus für eure Hilfe!
Ich habe wie im Titel schon genannt ein Problem mit dem Bisektionsverfahren.
Ich soll mittels CompareTo in einem Array ein gewisses Word finden (Die Worte dort sind alphabetisch geordnet). Das funktioniert auch. Allerdings soll ich den Index dieses Wortes übermitteln, wo genau sich das Wort befindet also.
Meine Lösung möchte ich hier gerade noch nicht präsentieren, da dies eine bepunktete Hausaufgabe ist und ich vielleicht ein wenig paranoid bin
Ich hoffe, dass man mir diese Frage trotzdem beantworten kann, auch ohne den Code zu kennen.
Ich betrachte das String[] array und schaue eben, ob das Wort in der ersten oder der zweiten Hälfe befindet. Je nachdem wo es ist, halbiere ich das Array und rufe die Funktion erneut rekursiv auf. Jedoch passen dadurch natürlich die Indizes nicht mehr, da ich ja jedes Mal ein neues Array erstelle.
Meine Idee war, zuerst eine int - Variable anzulegen, der ich beim ersten Aufruf den Wert der Arraylänge-1 zuweise. Sollte das Wort in der ersten Hälfte des Arrays stehen, brauche ich nur noch die Halbe länge, somit kann ich meine Variable halbieren. Sollte ich in der zweiten Hälfte das Wort finden, lasse ich die Variable unberührt.
Ich hoffe, ihr versteht was ich meine? Allerdings funktioniert das nicht so wirklich. Hat irgendjemand eine schlaue Idee?
Vielen Dank schon im Voraus für eure Hilfe!