Hilfe bei Java-Programm Binäre Suche (Rekursiv)?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

1. Ändere die Signatur von binarySearch():

int binarySearch(int[] f, int key, int i1, int i2)

Im Konstruktor musst Du sie jetzt mit binarySearch(f, 5, 0, f.length-1) aufrufen. Teste, ob noch alles tut.

2. Mache die Funktion rekursiv:

Abbruchkriterium: i1==i2. Hier gibst Du entweder f[i1] oder NO_KEY zurück.

Rekursion: m=(i1+i2)/2. Rufe binarySearch(f, key, i1, m) auf:

  • Wenn das einen Treffer liefert, gib ihn zurück.
  • Bei NO_KEY gib den Wert von binarySearch(f, key, m+1, i2) zurück.



ralphdieter  25.12.2016, 11:59

Danke fürs Sternle!

0