Hallo,
Ich habe die Aufgabe, in einem unsortieren Array das Element an der 100. Stelle in der sortierten Reihenfolge zu finden. Es sind also genau 99 Integers im gegebenen Array grösser als das zurückgebene Element. Der Algorithmus soll eine Komplexität von der Ordnung O(n) haben.
Dies ist mein Versuch:
Wie ich herausgefunden habe, stimmt die Lösung nicht genau.
Hat jemand eine Idee, wie ich es besser machen könnte?
Vielen Dank schon im Voraus!
Ich habe die Aufgabe, in einem unsortieren Array das Element an der 100. Stelle in der sortierten Reihenfolge zu finden. Es sind also genau 99 Integers im gegebenen Array grösser als das zurückgebene Element. Der Algorithmus soll eine Komplexität von der Ordnung O(n) haben.
Dies ist mein Versuch:
Code:
package findeZahl;
public class Nr100 {
public void get100(int[] a)
{
int nr100 = a[0];
for(int i = 0; i < 100; i++)
{
for(int j = 0; j < a.length-1; j++)
{
if(a[j] > a[j+1]) swap(a, j, j+1);
}
}
}
private void swap(int[] a, int x, int y)
{
int temp = a[x];
a[x] = a[y];
a[y] = temp;
return;
}
public static void main(String[] args)
{
Nr100 n = new Nr100();
java.util.Random generator = new java.util.Random();
int[] a = new int[1000];
for(int i = 0; i < a.length; i++) a[i] = generator.nextInt(1000);
n.get100(a);
for(int i = 0; i < a.length; i++) System.out.println("Stelle: " + i + " " +a[i]);
System.out.println("Zahl an Stelle 100: " +a[100]);
}
}
Hat jemand eine Idee, wie ich es besser machen könnte?
Vielen Dank schon im Voraus!