Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Zwei Arrays zusammenführen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 9 Beiträge
Karlito

Daumen hoch Wink
Zebsche

Danke für euere Hilfe ohne euch wäre ichhoch lange gesessen


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
package sample;

public class Aufgabe13 {
    public static void main(String[] args) {
        int j = 0, u = 0;
        int[] x = {1, 3, 4, 5, 5, 7};
        int[] y = {2, 4, 5};
        int length = x.length + y.length;

        int[] z;
        z = new int[length];

        for (int i = 0; i < length; i++) {

            if (u >= y.length || (j < x.length && x[j] <= y[u])) {
                z[i] = x[j];
                j++;
            } else {
                z[i] = y[u];
                u++;
            }
        }


        for (int b : z) {
            System.out.println(b);
        }
    }


}
as_string

Zitat:
Original von Zebsche
dh ich sollte noch eine abfrage machen ob u<y.length?

Ja, aber nicht nur im einen if für u, sondern auch im anderen für j. Das meinte ich eben.
Zebsche

dh ich sollte noch eine abfrage machen ob u<y.length?
Karlito

Im else-Zweig wird u erhöht. Wird u zu groß, gibt es in Zeile 16 im nächsten Schleifendurchlauf einen Zugriffsfehler.

Gruß,

Karlito
Zebsche Frage

Ich verstehe nicht wo ich die Länge des arrays überschreibe
as_string

Hallo!

Ich denke, wenn Du bei j schon beim Maximum angekommen bist, musst Du nur noch von y weitere nehmen, umgekehrt, wenn Du bei u beim Maximum bist, nur noch von x.
Du kannst die if-Bedingungen vielleicht dahingehend ändern, dass er immer zuerst überprüft, ob Du mit dem jeweiligen Index schon am Ende des entsprechenden Arrays bist (bzw. eigentlich ja darüber raus) und nur wenn nicht den Rest auswerten.

Gruß
Marco
Karlito

Hallo Zebsche,

die Längen der Arrays passen zusammen. u überschreitet aber den maximalen Index von y.

Gruß,

Karlito
Zebsche Zwei Arrays zusammenführen

Meine Aufgabe ist es zwei geordnete Arrays so zusammenzuführen, dass das neue Array wieder ein geordnetes ist. Jedoch habe ich ein das Problem das die Längen des Arrays nicht zusammenpassen. ich hoffe mir kann jemand weiterhelfen
Mit freundlichen Grüßen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
package sample;

public class Aufgabe13 {
    public static void main(String[] args) {
        int j = 0, u = 0;
        int[] x = {1, 5, 7};
        int[] y = {2, 4, 5};
        int length = x.length + y.length;

        int[] z;
        z = new int[length];

        int i = 0;
        while (i < length) {

            if (x[j] <  y[u] && j <x.length) {
                z[i] = x[j];
                j++;

            } else {
                z[i] = y[u];
                u++;
            }
            i++;
        }


    }
}