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:
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?
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?