public class VergleichBinSeq
{
    public VergleichBinSeq()
    {
        ermittleSuchzeit(   64);
        ermittleSuchzeit(  128);      
        ermittleSuchzeit(  256);        
        ermittleSuchzeit(  512);      
        ermittleSuchzeit( 1024);        
        ermittleSuchzeit( 2048);    
        ermittleSuchzeit( 4096);        
    }

    /*
     * ------------------------------------------------------------------------
     * Hier der Algorithmus zur modifizierten binären Suche, wie er in der 
     * Präsentation und im Skript gezeigt wird.
     * ------------------------------------------------------------------------
     */

    public int vergleicheBinaer(int[] a, int suchzahl)
    // Aufgabe: 
    // 1. Quelltext aus der Klasse BinaerDemo1 hierhin kopieren
    // 2. Den Quelltext mit einem Zaehler ausstatten, der die Vergleiche protokolliert
    // 3. Die Zahl der Vergleiche als Wert zurueckgeben.
    {
        int v = 0;


        return v;
    }    


    /*
     * ------------------------------------------------------------------------
     * Und hier der Algorithmus zur modifizierten linearen Suche, wie er in der 
     * Präsentation und im Skript gezeigt wird.
     * ------------------------------------------------------------------------
     */    

    public int vergleicheLinear(int[] a, int suchzahl)
    // Aufgabe: 
    // 1. Quelltext aus der Klasse ZufallsArraySuche hierhin kopieren
    // 2. Den Quelltext mit einem Zaehler ausstatten, der die Vergleiche protokolliert
    // 3. Die Zahl der Vergleiche als Wert zurueckgeben.
    {
        int v = 0;


        return v;
    }    

    /*
     * ------------------------------------------------------------------------
     * Testmethode für diesen Algorithmus
     * ------------------------------------------------------------------------
     */

    public void ermittleSuchzeit(int arraygroesse)
    {
        int[] zahlen = new int[arraygroesse];

        int vergleicheB = 0;
        int vergleicheL = 0;
        
        // Einen sortierten int-Array der Laenge arraygroesse erzeugen


        // Nach vielen Zahlen suchen, linear und binaer
        for ( // Schleifenbedingung)
        {
            vergleicheB += vergleicheBinaer(zahlen,suchzahl);   
            vergleicheL += vergleicheLinear(zahlen,suchzahl);   
        }   
        
        // Ergebnisse ausgeben
        System.out.println("Lineare Suche für " + arraygroesse + " Zahlen = " + vergleicheL + " Vergleiche");
        System.out.println("Binaere Suche für " + arraygroesse + " Zahlen = " + vergleicheB + " Vergleiche");

        // Verhaeltnis linear/binaer berechnen und ausgeben.
        double verh = (double) vergleicheL/vergleicheB;
        System.out.printf("Verhältnis Linear/Binär = %12.2f %n%n",verh);
    }

    public static void main(String[] args)
    {
        new VergleichBinSeq();
    }    

}