Zum Inhalt springen

Empfohlene Beiträge

Geschrieben (bearbeitet)

ich habe auch eine Frage bezüglich Bubble-Sort. Ich besuche zur Zeit einen Java Kurs und wir sollen eine Liste von Zufallszahlen erstellen und sortiert ausgeben.

mein bisheriger (fehlerhafter) Code:

import Tools.IO.*;


public class randomarray {

    public static void main(String[] args) {

       int n, m, temp;

       n = IOTools.readInteger();

       m = IOTools.readInteger();

       temp=0;//vertauschungsvariable

       int [] random = new int[m];

       for (int i =0; i < random.length; i++)

          //erstellen einer Liste mit Zufallszahlen zwischen 1 und n.

       {

           random[i]=(int)(n*(Math.random()))+1;

           System.out.println(random[i]);

       }

       int [] zufall  = new int[random.length];


               for (int i = 0; i<random.length;i++)

               {

                   zufall[i] = random [i];//erstellen einer kopie der Liste random

                   //sortieren der kopierten Liste und Ausgabe:

                   for (int k = 1; k < zufall.length; k++){

                     for(int l = 0; l<(zufall.length - k); l++)

                       if(zufall[l]>zufall[l+1]){

                     temp = zufall[l];

                     zufall[l] = zufall[l+1];

                     zufall[l+1]=temp;

                  System.out.println(zufall[k]);

                   } }

               }

  }}

Über Hinweise würde ich mich sehr freuen.

mfg slim

Bearbeitet von Klotzkopp
Code-Tags hinzugefügt
Geschrieben
  slim2crazy schrieb:
ich habe auch eine Frage bezüglich Bubble-Sort. Ich besuche zur Zeit einen Java Kurs
Dann häng dich bitte nicht an einen Thread im C-Forum. Ich trenne das mal ab und stecke es ins Java-Forum.
  slim2crazy schrieb:
Über Hinweise würde ich mich sehr freuen.
Wir würden uns über eine Problembeschreibung freuen, die über "fehlerhafter Code" hinausgeht.

Ich würde aber empfehlen, das Array erst dann auszugeben, wenn du mit dem Sortieren fertig bist.

Geschrieben

Sorry, da habe ich nicht drauf geachtet. Der Fehler liegt im Sortier-algorithmus. Die Arrays random und zufall werden beide korrekt ausgegeben, bevor ich zufall sortieren lasse. Nach dem sortieren werden einige Zahlen durch null ersetzt und es verschwinden teile, bzw es kommt etwas hinzu.

Nachdem ich due Ausgabe des sortierten Arrays aus der Sortierschleife rausgenommen habe:

Ausgabe:

für n, m =3

1

3

3

1

0

1

0

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3

1

3

at randomarray.randomarray.main(randomarray.java:45)

Java Result: 1

Geschrieben

Du hast die Sortierschleifen in die Kopierschleife gesteckt. Du versuchst also, das Array zufall zu sortieren, bevor du es vollständig kopiert hast.

-> Erst fertig kopieren, dann sortieren.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Weiterlesen  

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...