Gegeven een rij \(A = [a_0,...,a_{n-1}]\) van \(n\) verschillende gehele getallen. Ontwerp een algoritme dat een lokaal minimum in deze rij bepaalt. Een lokaal minimum is een element \(a_i\) zodanig dat \(a_i < a_{i-1}\) en \(a_i < a_{i+1}\). Grenswaarden \(a_0\) en \(a_{n-1}\) van een rij zijn lokale minima als respectievelijk \(a_0 < a_1\) en \(a_{n-1} < a_{n-2}\). De tijdscomplexiteit van je algoritme moet \(\Theta(\log n)\) zijn in het slechtste geval.
Ontwerp en implementeer een algoritme om een lokaal minimum van een gegeven rij van verschillende gehele getallen te bepalen. Implementeer hiervoor de interface LokaalMinimum1 in een klasse genaamd MijnLokaalMinimum. Hiervoor schrijf je een methode public int lokaalMinimum(int[] rij)
, die een rij van verschillende gehele getallen als argument heeft. De uitvoer is de waarde van een lokaal minimum in de rij.
Gebruik eventueel de testklasse SimpleTest2 om je oplossing lokaal te testen. Je kan hierin eenvoudig extra testgevallen toevoegen.
Het is niet toegestaan om de input van de methode lokaalMinimum
aan te passen. Indien je dit wel doet, zal de test falen.