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

Informatiker Board » Themengebiete » Praktische Informatik » Zwei Arrays zusammenführen » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Zwei Arrays zusammenführen
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Zebsche
unregistriert
Zwei Arrays zusammenführen Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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++;
        }


    }
}
23.10.2017 13:14
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Zebsche,

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

Gruß,

Karlito
23.10.2017 16:48 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
23.10.2017 16:51 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Zebsche
unregistriert
Frage Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich verstehe nicht wo ich die Länge des arrays überschreibe
23.10.2017 17:06
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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

Gruß,

Karlito
23.10.2017 17:50 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Zebsche
Grünschnabel


Dabei seit: 23.10.2017
Beiträge: 3

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

dh ich sollte noch eine abfrage machen ob u<y.length?
23.10.2017 18:09 Zebsche ist offline Beiträge von Zebsche suchen Nehmen Sie Zebsche in Ihre Freundesliste auf
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 639
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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.
23.10.2017 19:31 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Zebsche
Grünschnabel


Dabei seit: 23.10.2017
Beiträge: 3

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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


}
24.10.2017 08:55 Zebsche ist offline Beiträge von Zebsche suchen Nehmen Sie Zebsche in Ihre Freundesliste auf
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Daumen hoch Wink
24.10.2017 11:26 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Zwei Arrays zusammenführen