n-kleinstes Element einer ArrayList

G

Gast2

Gast
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");
	}
 

Papuerus

Aktives Mitglied
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 :)
 
S

SlaterB

Gast
teste noch mit [3, 3, 3, 3, 3]
wenn alle gleich sind, funktioniert die Median-Bestimmung meiner Ansicht nach nicht
 
G

Gast2

Gast
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.
 

Neue Themen


Oben