Hallo! nachdem ich nun einige stunden mit der Suche nach ner Lösung war, aber scheinbar zu dumm bin, das gefundene für meine ansprüche anzuwenden, hoffe ich, dass mir von euch jemand helfen kann.
ich habe hier eine methode, die ein eindimensionales array mit zufallszahlen (Integer) zwischen 99 und -99 füllt. nun sollen diese werte aufsteigend sortiert werden, aber ich kriegs nich gebacken :autsch:
Code:
static int [] erzeugeSort(int l) {
int [] feld2 = new int [l];
for (int i=0; i<l;i++)
{
feld2[i] =(int) Math.floor(-99*Math.random())+99;
}
return (feld2);
}
das hab ich alles schon probiert in jeder erdenklichen variation. scheinbar setze ich diese sortieranweisung an die falsche stelle oder keine ahnung...
wenn ich das programm so kompilieren will:
Code:
static int [] erzeugeSort(int l) {
int [] feld2 = new int [l];
for (int i=0; i<l;i++)
{
feld2[i] =(int) Math.floor(-99*Math.random())+99;
Arrays.sort(feld2);
}
return (feld2);
}
gibt mir der compiler den fehler aus: "cannot resolve symbol" mit dem zeiger auf dem A von Arrays.
steht die sortieranweisung an der richtigen stelle?
danke für die tipps! das programm lässt sich jedenfalls schonmal kompilieren, trotzdem funktioniert die sortierung leider nicht. die werte werden scheinbar unbehandelt in willkürlicher reihenfolge ausgegeben:
Code:
import java.util.*;
...
static int [] erzeugeSort(int l) {
int [] feld2 = new int [l];
for (int i=0; i<l;i++) {
feld2[i] =(int) Math.floor(-99*Math.random())+99;
}
Arrays.sort(feld2);
return (feld2);
}
woran könnte das denn liegen?
weiterhin versuche ich grad das minimum aus diesem array zu ermitteln, allerdings häng mit dem code, den ich dafür geschrieben hab in ner endlosschleife fest
die methode sieht so aus:
Code:
static int min (int [] feld2) {
return min (feld2);
}
dann hab ich in der main-methode ne hilfsvariable deklariert, um dann das minimum ausgeben zu können:
Code:
public static void main (String[] args) throws IOException {
int minimum = 1;
...
minimum = min (feld2);
System.out.println("Das Minimum ist: " +minimum);
der compiler liefert keine fehler, aber beim ausführen des programms kommt dann ein java.lang.StackOverflowError
static int min (int [] feld2) {
return min (feld2);
}
Das liefert keine Endlosschleife, sondern eine
StackOverflowException, da min sich immer
wieder selbst aufruft.
Code:
static int min (int [] feld2) {
if (feld2 == null || feld2.length == 0)
return -1;
int min = feld2[0];
for (int i=1; i < feld2.length; ++i)
if (min > feld2[i])
min = feld2[i];
return min;
}