ArrayIndexOutOfBoundsException bei einem Sortierverfahren

Kumora

Neues Mitglied
Hi, ich hänge mit einem Kumpel seit Stunden an einer Aufgabe für den Informatikunterricht. Wir sollen ein zufällig befühltes Array sortieren, und dass nach verschiedenen Sortierverfahren (selection sort/insertion sort/etc.). Ich hab jetzt einen Code der (glaube ich) funktionieren wird, jedoch wird bei einer while-Schleife ein java.lang.ArrayIndexOutOfBoundsException-Fehler.
Der Fehler liegt in Zeile 96. Gerne auch Verbesserungen für den restlichen Code ^^, und bedenkt bitte, ich bin ein Code-Noobie. LG
Java:
/**
 *
 * Beschreibung
 *
 * @version 1.0 vom 06.10.2022
 * @author
 */

public class Sortierverfahren {
 
  public static void main(String[] args) {
    int arrayanzahl = 50;
    long zeit = System.currentTimeMillis(), zeit1;
    int[] original, feld;
    original = new int[arrayanzahl];
    feld = new int[arrayanzahl];
    original = befuelleArray(original);                                 
    feld = kopiereArray(original, feld);
    System.out.println("UNSORTIERTES ZAHLENFELD");
    ausgabeArray(feld);
    zeit1 = System.currentTimeMillis()-zeit;
    zeit = System.currentTimeMillis();
    System.out.println("Benötigte Zeit in ms: " + zeit1);
    System.out.println(" ");
    selectionSort(feld);
    zeit1 = System.currentTimeMillis()-zeit;
    zeit = System.currentTimeMillis();
    System.out.println("Dafür benötigte Zeit in ms: " + zeit1);
    System.out.println(" ");
    insertionSort(feld);
    zeit1 = System.currentTimeMillis()-zeit;
    zeit = System.currentTimeMillis();
    System.out.println("Dafür benötigt Zeit in ms: " + zeit1);
    System.out.println(" ");
  } // end of main
 
  public static int[] befuelleArray(int[] zahlen) {      //hier wird das Array "original" befühlt
    int length = zahlen.length;
    for (int i = 0;i<length ;i++ ) {
      zahlen[i] = (int)(Math.random()*100);     
    } // end of for
    return zahlen;
  } // end of befuelleArray 
 
  public static int[] kopiereArray(int[] gegeben, int[] kopiert) {  //hier wird "feld" definiert
    int length = gegeben.length;
    for (int i = 0;i<length ;i++ ) {
      kopiert[i] = gegeben[i];
    } // end of for
    return kopiert;
  } //end of kopiereArray
 
  public static void ausgabeArray(int[] druck) {  // hier wird "feld" ausgegeben
    for (int i = 0;i<druck.length ;i++ ) {
      System.out.print(druck[i] + " ");
    } // end of for
    System.out.println("");
    System.out.println("");
  } // end of ausgabeArray
 
  public static int[] tauschen(int[] zahlen, int pos1, int pos2) {     //hier wird eine Position mit der anderen getauscht. HÄUFIG GENUTZT !NEU KONTROLLIEREN!
    int speicher;
    speicher = zahlen[pos1];
    zahlen[pos1] = zahlen[pos2];
    zahlen[pos2] = speicher;
    return zahlen;
  } // end of tauschen
 
  public static void selectionSort(int[] zahlen) {
    int links = 0;
    int min = 0;
    while (links<zahlen.length) {
      min = links;
      int i = links;
      while (i < zahlen.length) {
        if (zahlen[i]<=zahlen[min]) {
          min = i;
        } else {
        
        } // end of if-else 
        i++;
      } // end of while
      tauschen(zahlen, min, links);
      links++;
      i = 0;
    } // end of while
    System.out.println("Sortiertes Zahlenfeld nach Selection-Sort-Verfahren:");
    ausgabeArray(zahlen);
  } // end of selectionSort
 
  public static void insertionSort(int[] zahlen) {
    int rechts = 1, links = rechts-1;
    while (rechts<=zahlen.length) {
      int i = 0;
      while (i <= rechts-1) {         
        if (zahlen[rechts]<=zahlen[i]) {   //LAUT JAVA IST HIER DER FEHLER...
          tauschen(zahlen, rechts, i);
        } // end of if
        i++;
      } // end of while
      rechts++;
    } // end of while
    ausgabeArray(zahlen);
  } // end of insertionSort 
} // end of class Sortierverfahren
 

KonradN

Super-Moderator
Mitarbeiter
rechts läuft bis zahlen.length und du greifst auf zahlen[rechts] zu.

Der höchste Index ist aber zahlen.length-1.
Vermutlich muss in Zeile 93 also nur ein < stehen. Ich habe mir die Algorithmen aber nicht weiter angesehen.
 

Kumora

Neues Mitglied
rechts läuft bis zahlen.length und du greifst auf zahlen[rechts] zu.

Der höchste Index ist aber zahlen.length-1.
Vermutlich muss in Zeile 93 also nur ein < stehen. Ich habe mir die Algorithmen aber nicht weiter angesehen.
Du hast komplett recht! Ich war schon an dem Punkt das etwas mit rechts nicht stimmt... aber manchmal braucht es einfach ein frischen Blick. Danke dir!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
B ArrayIndexOutOfBoundsException, ich finde den Fehler nicht? Java Basics - Anfänger-Themen 10
J Problem mit "ArrayIndexOutOfBoundsException" Java Basics - Anfänger-Themen 11
JaVaN0oB java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
F ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
I Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 Java Basics - Anfänger-Themen 3
C Erste Schritte ArrayIndexOutOfBoundsException beim Speichern im Array Java Basics - Anfänger-Themen 2
Hanschyo ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
I java.lang.ArrayIndexOutOfBoundsException at lösung.main Java Basics - Anfänger-Themen 3
M ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 1
R Compiler-Fehler ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
R java.lang.ArrayIndexOutOfBoundsException: 0 Rechner Error Java Basics - Anfänger-Themen 4
C Compiler-Fehler Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 Java Basics - Anfänger-Themen 3
L ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 10
J Zwei Arrays zippen wirft eine ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 11
V java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
L Fehler: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
L Compiler-Fehler Problem beim Programmieren eines Kalenders (java.lang.ArrayIndexOutOfBoundsException) Java Basics - Anfänger-Themen 2
V ArrayIndexOutofBoundsException:0 Java Basics - Anfänger-Themen 0
R ArrayIndexOutofBoundsException: 10 Java Basics - Anfänger-Themen 5
P ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException -> Fehler in for-Schleife? Java Basics - Anfänger-Themen 6
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
B java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 4
S noch ein ArrayIndexOutOfBoundsException Fehler Java Basics - Anfänger-Themen 2
R Compiler-Fehler java.lang.ArrayIndexOutOfBoundsException, warum? Java Basics - Anfänger-Themen 6
O ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 18
J "ArrayIndexOutOfBoundsException", finde den Fehler schlicht nicht Java Basics - Anfänger-Themen 6
A ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 20
T ArrayIndexOutOfBoundsException - Problem mit Array-Größe Java Basics - Anfänger-Themen 4
C ArrayIndexOutOfBoundsException bei meinem ersten objektiorientierten Programm Java Basics - Anfänger-Themen 4
A parseDouble - ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
A ArrayIndexOutOfBoundsException - woher kommt er?! Java Basics - Anfänger-Themen 4
J AWT-EventQueue: ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 6
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
K ArrayIndexOutOfBoundsException: 0 Java Basics - Anfänger-Themen 4
Luk10 ArrayIndexOutOfBoundsException .... Java Basics - Anfänger-Themen 2
X Probleme mit ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
B Fehlermeldung: "ArrayIndexOutOfBoundsException"??? Java Basics - Anfänger-Themen 3
H java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 Java Basics - Anfänger-Themen 5
N ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 7
U ArrayIndexOutOfBoundsException - dringend Hilfe gesucht Java Basics - Anfänger-Themen 8
S java.lang.ArrayIndexOutOfBoundsException: 5 nur wieso? Java Basics - Anfänger-Themen 2
T ArrayIndexOutOfBoundsException ? Matrizenrechnung. Java Basics - Anfänger-Themen 3
B ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException finde den Auslöser nicht Java Basics - Anfänger-Themen 5
G ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 11
V java.lang.ArrayIndexOutOfBoundsException: Java Basics - Anfänger-Themen 3
E 2 Prob.:"ArrayIndexOutOfBoundsException" & do- Java Basics - Anfänger-Themen 2
Z Warum habe ich eine ArrayIndexOutOfBoundsException? Java Basics - Anfänger-Themen 2
N ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 2
S ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 3
N ArrayIndexOutOfBoundsException...... Java Basics - Anfänger-Themen 8
K Mehrere Werte in einem Switch Case parallel überprüfen Java Basics - Anfänger-Themen 7
Zrebna Fragen zu einem Klassendiagramm Java Basics - Anfänger-Themen 8
S HashMap mehrere Keys zu einem Value Java Basics - Anfänger-Themen 3
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
J JSON mit einem JPanel Java Basics - Anfänger-Themen 3
F Einem GIT repository ein Projekt hinzufügen Java Basics - Anfänger-Themen 1
J Frage zu einem "Taschenrechner" code Java Basics - Anfänger-Themen 9
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
J Auf einem JLabel Linien Malen Java Basics - Anfänger-Themen 1
I @Entity Klassen, Service Beans etc. aus einem Share Projekt beziehen? Java Basics - Anfänger-Themen 26
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
XWing Randomizer mit einem String Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I Viereck / Rechteck Prüfung innerhalb einem bestimmten Bereich Java Basics - Anfänger-Themen 2
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
Substring in einem String finden Java Basics - Anfänger-Themen 13
J Fehlerbehandlung an einem Beispiel Java Basics - Anfänger-Themen 8
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
B In einem Thread Endlosschleife beenden Java Basics - Anfänger-Themen 19
A Elemente in einem Array Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
M Objekt in einem Objekt speichern Java Basics - Anfänger-Themen 9
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
D spezifische Knoten in einem Baum zählen Java Basics - Anfänger-Themen 9
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
O Array mit einem Zeichen vergleichen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben