hallo zusammen,
ich hätt' da mal ein mehr oder minder großes problem :roll: . ich möchte ein programm realisieren, welches folgendes beinhalten soll:
-eine funktion zum einlesen einer reihe beinhaltet-durch eingabe der array-größe durch den benutzer über standardeingabe soll die größe des anfangs"feldes" festgelegt werden.
-dieses feld soll im nächsten schritt mit der anzahl der zuvor eingegeben werte durch eingabe dieser initialisiert werden.
-das so entstandene array soll nun mit hilfe von mergesort gemischt und die ergebnisse in ein neues hilfsfeld kopiert werden, welches dann ausgegeben werden soll--> result.
PROBLEME meinerseits, da ich noch immer im absoluten Anfängerstadium schwebe:
-weiß nicht so recht wo und wie ich die variablen deklarieren/initialisieren soll (in main, oder den funktionen selbst)
-wie mache ich es, dass die funktion zu devide/conquer die eingabe entweder zur hälfte teilt, oder wenn ungerade in höchstens von 1 verschiedene felder?
-ich kenne bisher nur "while"-"for"-"switch"-"return"..also einfachste formen zur umsetzung.
HIER im Folgenden mal das, was mir bisher dazu einfiel (Ist leider nicht allzu viel):
Zum einlesen einer Folge habe ich leider keine rechte Idee, wie ich weitermachen soll, allerdings kenne ich die
Methode x.liesInt() zum einlesen von int-Werten.
Ich wäre soo dankbar für ein paar Denkanstöße :wink: , Danke...
grüße, s.ho
ich hätt' da mal ein mehr oder minder großes problem :roll: . ich möchte ein programm realisieren, welches folgendes beinhalten soll:
-eine funktion zum einlesen einer reihe beinhaltet-durch eingabe der array-größe durch den benutzer über standardeingabe soll die größe des anfangs"feldes" festgelegt werden.
-dieses feld soll im nächsten schritt mit der anzahl der zuvor eingegeben werte durch eingabe dieser initialisiert werden.
-das so entstandene array soll nun mit hilfe von mergesort gemischt und die ergebnisse in ein neues hilfsfeld kopiert werden, welches dann ausgegeben werden soll--> result.
PROBLEME meinerseits, da ich noch immer im absoluten Anfängerstadium schwebe:
-weiß nicht so recht wo und wie ich die variablen deklarieren/initialisieren soll (in main, oder den funktionen selbst)
-wie mache ich es, dass die funktion zu devide/conquer die eingabe entweder zur hälfte teilt, oder wenn ungerade in höchstens von 1 verschiedene felder?
-ich kenne bisher nur "while"-"for"-"switch"-"return"..also einfachste formen zur umsetzung.
HIER im Folgenden mal das, was mir bisher dazu einfiel (Ist leider nicht allzu viel):
Code:
public class mergesort
{
public static void main (String [] args)
{
System.out.println("Eingabe der gewünschten Laenge der Folge: ");
int length= EM02.liesInt();
System.out.println("Geben Sie jetzt die zu sortierenden Werte ein: ");
int [] reihe=new int [length];
int [] f1,f2,sorted;
}//Ende main
/*public static int read (int[]folge) //Funktion zum Einlesen der Folge
{
int anfang = folge[0];
int
for (int i=1;i<folge.length;i++)
{
if (folge[i]>anfang)
anfang = folge[i];
}
return folge;
}*/Ende read
public static int [] merge (int[]f1, int[]f2)
{
int i=0, j=0, k=0;
int[]sorted = new int[f1.length + f2.length];
while ((i<f1.length) && (j<f2.length))
{
if (f1[i] < f2[j])
sorted [k++] = f1[i++];
else
sorted [k++] = f2[j++];
}
while (i<f1.length) sorted[k++] = f1[i++];
while (j<f2.length) sorted[k++] = f2[j++];
return sorted;
}//Ende merge
}//Ende mergesort
Zum einlesen einer Folge habe ich leider keine rechte Idee, wie ich weitermachen soll, allerdings kenne ich die
Methode x.liesInt() zum einlesen von int-Werten.
Ich wäre soo dankbar für ein paar Denkanstöße :wink: , Danke...
grüße, s.ho