Dies ist eine alte Version des Dokuments!
Ein Programm zur binären Suche
Arbeite mit dem folgenden Programmgerüst:
- App.java
/** * Erzeugt eine geordnete Zufallsreihe und ermöglicht Abfragen darüber. * * @author Frank Schiebel * @version 1.0 */ class BinarySearch { private int[] daten; int anzahl; public BinarySearch(int anzahl) { this.anzahl = anzahl; daten = new int[anzahl]; int indexvorher = 0; for (int i = 0; i < daten.length; i++) { if ( i>0 ) { indexvorher = i -1; } daten[i] = getZufallszahlOrdered(daten[indexvorher],10*anzahl); } } public void binaereSuche(int zahl) { } public void anzeigen() { for (int i=0; i< anzahl; i++) { System.out.println( i + " -> " + daten[i] + " "); } } private int getZufallszahlOrdered(int basis, int grenze) { return (int)(2*(grenze-basis)/anzahl*Math.random()+1) + basis; } } /* App Klasse. Steuerklasse für unser Programm */ public class App { public static void main(String[] args) { BinarySearch liste = new BinarySearch(1000); liste.anzeigen(); } }
Aufgaben:
A1
Probiere das Programm aus. Beschreibe, was es macht, verändere auch den Parameter anzahl
bei der Erzeugung des BirarySearch Objekts. Welchen Einflüsse hat diese Änderung?
A2
Implementiere eine Methode binaereSuche
, welche den Index des gesuchten Elements zurückgibt oder -1
, wenn der gesuchte Wert nicht gefunden wird.
int gesucht=22; int treffer = liste.binaereSuche(gesucht); System.out.println("Der Wert " + gesucht + "befindet sich im Arrayelement mit dem Index " + treffer);