Methoden miteinander verbinden (Laufzeit)

murriiii

Mitglied
Hallo lieber Java Forum,

ich muss ein kleines Programm schreiben, komme allerdings nicht mehr weiter. Ich hoffe mir kann hier jemand weiter helfen. Hier erstmal der Code:

Java:
import java.util.Arrays;
import java.util.Random;

public class Laufzeit {

    static int depth = 0;

    static boolean contains2(int[] S, int low, int high, int c) {
        depth++;
        if (low > high) {
            return false;
        }

        int m = (low + high) / 2;

        if (S[m] == c) {
            System.out.println("contains2 " + depth);
            return true;
        }
        if (S[m] < c) {
            return contains2(S, high, m + 1, c);
        } else {
            return contains2(S, low, m - 1, c);
        }
    }

    static boolean contains3(int[] S, int low, int high, int c) {
        depth++;

        int diff = S[high] - S[low];                                      
        int m = low + (int) (((double) high - low) * (c - S[low]) / diff);  

        if (c != S[high] && c != S[low] && c != S[m]) 
        {
            return false; // falls element nicht gefunden
        }

        if (S[m] == c) {
            System.out.println("contains3 " + depth);
            return true;
        }
        if (S[m] < c) {
            return contains3(S, high, m + 1, c);
        } else {
            return contains3(S, low, m - 1, c);
        }
    }

    static int[] createRandomArraySorted(int size) {
        int[] S = new int[size];

        Random random = new Random();
        for (int i = 0; i < size; i++) {
            S[i] = random.nextInt(Integer.MAX_VALUE);
        }

        Arrays.sort(S);
        return S;
    }

    static int getRandomElement(int[] S) {
        Random random = new Random();
        return S[random.nextInt(S.length)];
    }
    
    public static void main(String[] args) {

    }

}

Ich möchte eine weitere Methode hinzufügen die dafür sorgt, das meine contains Methoden den Zufalls-Array aus der Methode createRandomArraySorted sowie die dazugehörige Zufälliges Element aus der Methode getRandomElement bekommen. Dann möchte ich die contains Methoden gegeneinander laufen lassen so dass ich mit dem depth überprüfen kann welches der beiden Methoden den besseren Laufzeit hat. Allerdings weiß ich nicht wie ich vorgehen muss. Kann mir irgendjemand paar Tipps oder so geben?
 
Du schreibst eine Methode, der du alle wichtigen Infos übergibst oder die sich ihre Infos selber beschafft oder eine Kombination aus beidem. Diese Methode ruft der Reihe nach die anderen Methoden auf und speichert ggf. die Rückgabewerte zwecks eines späteren Vergleichs. Ich verstehe dein Problem nicht 😉
 
Um ehrlich Zu sein ist ja genau das mein Problem ^^... Ich weiß nicht wie man die Methoden mit deren Variablen in einer anderen Methode aufruft... Kannst du ein Beispiel geben?? Muss jetzt nicht's mit dem Code zutun haben... Nur damit ich ein Ansatz habe...
 
Java:
void test (testTyp testVariable){
   tuWas();
}

public static void main(String args[]){
   testTyp test = new testTyp();
   test(test);
}

Das ist ein einfaches Beispiel. Aber du solltest dir noch mal Methoden in Java im Internet angucken. Java ist auch eine Insel zum Beispiel ist ein guts Nachschlagewerk zum Thema Java. 😉
 
Zuletzt bearbeitet:
So habe ich das schon versucht, allerdings konnte ich nicht auf die Methoden zugreifen.
Java:
Laufzeit x = new Laufzeit();
x.createRandomArraySorted(3);
Hier sagt NetBeans dauernd das ich ein Methode Namens createRandomArraySorted erzeugen soll. Aber die ist ja schon da..
 
Du verwechselst Static / Non Static Methoden.

Hier ein kleines Beispiel.

Java:
// Statische Methode
static boolean contains2();

// Aufruf direkt 
Laufzeit.contains2(); 

// normale Methode
public boolean contains2(); 
// Aufruf
new Laufzeit().contains2();
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben