Maximum mit Binärsuche?

Ravenhall

Mitglied
Kann mir jemand erklären, wie in etwa ich nach einem Maximum mit einem Algorithmus logarithmischer Komplexität ähnlich der binären Suche, suche? Die Zahlen sollen streng Monoton aufsteigend und dann auch wieder fallend sein. Also z.B 1 4 5 8 13 11 9 7 5 4 2
Finden soll ich also die 13 soweit so gut.
Wie würdet ihr das bewerkstelligen.
Im moment geht es nur um das Theoretische ich würde gerne versuchen den Code selbst zu schreiben.
:rtfm:
 

Ravenhall

Mitglied
So bin mitlerweile so weit wie ihr sehen könnt. Jedoch glaub ich das bei meinem Code spezielle die Binärsuche nicht richtig ist. Könnt ihr mal drüber schaun bitte.

Java:
  public static void main(String[] args) {
      
         int laenge = 0;      
         System.out.print("Bitte geben Sie die Länge ein und danach die Elemente: ");
         
         laenge = SavitchIn.readLineInt();
         
         int[] element = new int [laenge];  				//Erstelle Array mit eingegebener Laenge
      
         for (int i=0; i < element.length; i++){		//Zahlen werden solange eingelesen bis sie die Laenge der Elemente erreicht haben
            element[i] = SavitchIn.readInt(); 			//wird in ein Array geschrieben
         }
         
         System.out.println();
         
      	
		int[] feld;
         int links=0, mitte=(links+rechts)/2, rechts=feld.length-1, max=0;
			
         while (links < rechts){
			
             if (max < werte[mitte])
                  rechts = mitte - 1;  						 //Wert wird in linker Haelfte gesucht
                  
               else if (max > werte[mitte])
                  links = mitte + 1;    								// Wert wird in rechter Haelfte gesucht
                  	
               else
                  links = rechts + 1;   									//max gefunden! Schleife wird beendet
            
               anzSchritte++;
            }
      }
 

Ravenhall

Mitglied
Vergesst den letzten Beitrag. Hab mein Programm geschafft. Danke für die Hilfen.
Musste noch eine for Schleife hinzufügen in der das Max gespeichert wird. :D
 

Neue Themen


Oben