n-kleinstes Element einer ArrayList

Ja, zum Beispiel so:

Java:
	public static void main(String[] args) {
		Random rnd = new Random();
		for (int test = 1; test < 100; test++) {
			int nThelement = rnd.nextInt(99);
			ArrayList<Integer> list = fillArrayByRandom(100, 10000);
			System.out.println("Unsorted: " + Arrays.toString(list.toArray()));
			Integer i = findNthSmallest(list, nThelement);
			System.out.println("Berechnetes " + nThelement + "tes Element: "
					+ i);
			Collections.sort(list);
			System.out.println("Sorted: " + Arrays.toString(list.toArray()));
			Integer j = list.get(nThelement - 1);
			System.out.println(nThelement + "tes Element: " + j);
			if (i != j) {
				throw new RuntimeException();
			}
		}
		System.out.println("______________________");
		System.out.println("Alle tests erfolgreich");
	}
 
Code:
int nThelement = rnd.nextInt(99);
hier noch + 1 und es haut alles hin^^
weil es ja nicht 0 sein darf

danke für die schnelle Hilfe
nach 1000000 erfolgreichen Tests bin ich ganz zuversichtlich 🙂
 
teste noch mit [3, 3, 3, 3, 3]
wenn alle gleich sind, funktioniert die Median-Bestimmung meiner Ansicht nach nicht
 
Ist die Frage ob [3,3,3,3] als Eingabe überhaupt erlaubt ist. Ich würde die Aufgabe auffassen als "Alle Zahlen im Array müssen unterschiedlich sein". Aber hast recht, dann sollte man zumindest mit einem Fehlerhandling darauf reagieren.
 

Zurück
Oben