Bubblesort: Exception in Thread "main"

L

Lumina

Gast
Hallo, ich bin Medieninformatik Studentin im ersten Semester und soll zur Übung
eine Bubblesort Funktion schreiben. Das Problem ist, wenn ich das Programm laufen lasse kommt immer die Meldung "Exception in Thread "main" java.lang.ArrayIndexOutOfBoundsException: 12"
Ich hoffe mir kann jemand weiterhelfen
Gemeckert wird über die Zeile 24 und 53
Hier mein Code:

[JAVA=2]class Bubble
{
private int[] array;
int vertauschentemp=1;
int vertauschen=0;

//Konstruktor
public Bubble(int[]array)
{
this.array=array;
}

//Sortiermethode
public int[] sort()
{
do
{
vertauschentemp=vertauschen;
for(int i=0;i<array.length;i++)
{
for(int j=i;j<=array.length;j++)
{
if(array>array[j])
{
int wert=array;
array=array[j];
array[j]=wert;
vertauschen++;
}
}
}
}
while(vertauschentemp==vertauschen);
return array;
}

//Ausgabe
public void print()
{
for(int i=0;i<array.length;i++)
{
System.out.println(array);
}
}
}
public class Bubblesort
{
public static void main(String[]args)
{
int[] feld={44,30,24,55,68,1,211,95,2,12,12,13};
Bubble zahlen=new Bubble(feld);
zahlen.sort();
zahlen.print();
}
}[/code]
 

Paddelpirat

Bekanntes Mitglied
Ein Array der Länge n beginnt mit Index 0 und endet bei n-1. Also muss in Zeile 23 statt
Code:
j<=array.length
ein
Code:
j<array.length
stehen.
 

T_Wolf

Mitglied
Wie mein Vorposter schon erwähnt hat ist array[array.length] das erste nicht existierende Element und wirft somit ein Fehler.

java.lang.ArrayIndexOutOfBoundsException wird Dir in deiner Laufbahn sicherlich noch etliche male über den Weg laufen, dann immer nach den Arrayabfragen schauen irgendwo wird dann auf ein nicht existierendes Element zugegriffen.

Dies geschieht in Zeile 23.
Und da eine Methode wenn sie aufgerufen wird (Zeile 53) in der ein Fehler ist diesen weitergeworfen bekommt ist auch dort ein Fehler (der auch weg ist wenn Du Zeile 23 änderst)

Java:
         for(int i=0;i<array.length;i++)
         {
            for(int j=i;j<array.length;j++) // < 
            {
               if(array[i]>array[j])
               {
                  int wert=array[i];
                  array[i]=array[j];
                  array[j]=wert;
                  vertauschen++;
               }
            }
 
S

SlaterB

Gast
zum selber denken:
vor der Zeile mit der Exception
System.out.println(i .. j .. Länge des Arrays)
->
spätestens dann erkennen dass ein Index zu hoch ist, obwohl es die Fehlermeldung auch sag
->
und dann überlegen, woher diese offensichtlich sinnlose Indexe kommen, irgendwer muss ja verantwortlich sein
 

ne0h

Mitglied
Hm,

scheint mir ein wenig "unstrukturiert" und unnötig kompliziert (nicht böse gemeint, Du lernst ja noch).

Ich habs mal schnell runtergeschrieben, wie ich es am einfachsten finde (wobei da Dein Prof sicher meckern würde, dass es nicht der Java-OO Stil ist, aber das war ja nicht gefordert in Deiner Aufgabenstellung ;)):

Java:
package bubblesort;

public class BubbleSort {

	public static void main(String[] args) {
		
		int[] arrayToSort = {5, 9, 2, 22, 41, 4, 6, 1, 23, 7, 19, 0};
		int tmp;
		
		output(arrayToSort, "unsorted");
		
		while(!isSorted(arrayToSort)) {
			for(int i = 0; i < arrayToSort.length - 1; i++) {
				if(arrayToSort[i] > arrayToSort[i + 1]) {
					tmp = arrayToSort[i];
					arrayToSort[i] = arrayToSort[i + 1];
					arrayToSort[i + 1] = tmp;
				}
			}			
		}
		
		output(arrayToSort, "sorted");
		
	}
	
	
	public static boolean isSorted(int[] arrayToSort) {
		for(int j = 0; j < arrayToSort.length - 1; j++) {
			if(arrayToSort[j] > arrayToSort[j + 1]) {
				return false;
			}
		}
		return true;
	}
	
	
	public static void output(int[] outputArray, String status) {
		System.out.print(status + ": ");
		for(int k = 0; k < outputArray.length; k++) {
			System.out.print(outputArray[k] + ",");			
		}
		System.out.println();
	}

}


MfG

ne0h
 

ne0h

Mitglied
Edit zur output()-Methode:

Habs bisschen schöner gemacht, damit nach der letzten Zahl kein Komma mehr steht (wir wollens ja wenn dann auch vernünftig schön machen :D)

Java:
	public static void output(int[] outputArray, String status) {
		System.out.print(status + ": ");
		for(int k = 0; k < outputArray.length; k++) {
			String outline = (k + 1 == outputArray.length) ? "" : ",";
			System.out.print(outputArray[k] + outline);			
		}
		System.out.println();
	}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Generischer Bubblesort Java Basics - Anfänger-Themen 19
S BubbleSort für ArrayLists Java Basics - Anfänger-Themen 3
H Bubblesort-Algorithms Java Basics - Anfänger-Themen 14
I Bubblesort Java Basics - Anfänger-Themen 1
L Bubblesort in Batch Script Java Basics - Anfänger-Themen 15
D Bubblesort Java Basics - Anfänger-Themen 2
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Bubblesort ohne Array Java Basics - Anfänger-Themen 30
V_Fynn03 Erste Schritte BubbleSort Quelltext funktioniert noch nicht Java Basics - Anfänger-Themen 1
H Bubblesort-Zwei Integer auf Dekade vergleichen. Java Basics - Anfänger-Themen 6
R Erste Schritte Einsteiger-Video Bubblesort Bewertung Java Basics - Anfänger-Themen 11
D Array/Bubblesort Fehlermeldungen Java Basics - Anfänger-Themen 1
U BubbleSort Problem Java Basics - Anfänger-Themen 2
L Array und Bubblesort Java Basics - Anfänger-Themen 4
L Frage zu BubbleSort Algorithmus Java Basics - Anfänger-Themen 2
T BubbleSort Java Basics - Anfänger-Themen 9
O Bubblesort allgemeiner schreiben Java Basics - Anfänger-Themen 5
J Interface Bubblesort soll Arrays beliebiger Referenztypen sortieren können. Java Basics - Anfänger-Themen 5
N Mein Bubblesort sortiert mein Array nicht Java Basics - Anfänger-Themen 2
E BubbleSort Java Basics - Anfänger-Themen 2
J Erste Schritte Bubblesort Java Basics - Anfänger-Themen 6
G Array mit BubbleSort sortieren Java Basics - Anfänger-Themen 2
N Bubblesort Programm funktioniert nicht Java Basics - Anfänger-Themen 19
R BubbleSort Java Basics - Anfänger-Themen 4
R BubbleSort Java Basics - Anfänger-Themen 15
A BubbleSort Java Basics - Anfänger-Themen 7
B BubbleSort Java Basics - Anfänger-Themen 10
R BubbleSort Java Basics - Anfänger-Themen 6
C Klassen BubbleSort was passiert mit dem Index ? Java Basics - Anfänger-Themen 2
B Sortiermethode bei Bubblesort Java Basics - Anfänger-Themen 15
G Bubblesort - Falsche Sortierung Java Basics - Anfänger-Themen 6
M Laufzeitanalyse Bubblesort Java Basics - Anfänger-Themen 7
T BubbleSort Java Basics - Anfänger-Themen 2
P BubbleSort-Methode Java Basics - Anfänger-Themen 18
M BubbleSort (Sortieralgorithmus) Java Basics - Anfänger-Themen 28
B Bubblesort Java Basics - Anfänger-Themen 70
G Bubblesort ohne Schleifen Java Basics - Anfänger-Themen 10
F Bubblesort, Insertsort Java Basics - Anfänger-Themen 2
K BubbleSort Hausaufgabe Java Basics - Anfänger-Themen 20
B Bubblesort-Algorithmus und Testklasse Java Basics - Anfänger-Themen 5
c_sidi90 Array mit Bubblesort sortieren Java Basics - Anfänger-Themen 8
B Java Bubblesort Java Basics - Anfänger-Themen 5
F Bubblesort---Frage von Anfänger Java Basics - Anfänger-Themen 2
E BubbleSort kleiner Fehler? Java Basics - Anfänger-Themen 14
B BubbleSort Java Basics - Anfänger-Themen 5
K Einfaches Bubblesort Java Basics - Anfänger-Themen 11
W Problem mit BubbleSort und Array Java Basics - Anfänger-Themen 10
Spin taschenrechner incl bubblesort Java Basics - Anfänger-Themen 5
G Bubblesort Java Basics - Anfänger-Themen 2
Binary.Coder Bubblesort in einfachen unmissverständlichen Sätzen Java Basics - Anfänger-Themen 2
B Bubblesort Verfahren Java Basics - Anfänger-Themen 2
C Bubblesort Java Basics - Anfänger-Themen 5
I BubbleSort-Algorithmus Java Basics - Anfänger-Themen 8
G Bubblesort Java Basics - Anfänger-Themen 23
G Bubblesort Java Basics - Anfänger-Themen 15
kulturfenster BubbleSort Java Basics - Anfänger-Themen 7
T Bekomme Fehler mit Bubblesort Java Basics - Anfänger-Themen 2
T Zahlen mit Bubblesort sortieren Java Basics - Anfänger-Themen 2
D Bubblesort und Array Java Basics - Anfänger-Themen 6
T Bubblesort Java Basics - Anfänger-Themen 5
L Bubblesort funzt nicht Java Basics - Anfänger-Themen 3
N bubblesort Java Basics - Anfänger-Themen 4
T BubbleSort optimieren ??? Java Basics - Anfänger-Themen 26
I Exception wird gefangen, aber trotzdem in Error Log? Java Basics - Anfänger-Themen 10
W Null-Pointer Exception beim Programmstart Java Basics - Anfänger-Themen 8
Ostkreuz String Exception Java Basics - Anfänger-Themen 8
Fiedelbambu Exception in Application constructor Java Basics - Anfänger-Themen 3
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
F abbruch Exception lässt sich nicht erstellen Java Basics - Anfänger-Themen 2
U Warum kriege ich hier eine nullpointer exception, sehe den Fehler nicht (swing) Java Basics - Anfänger-Themen 1
F Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 11 at main.main(main.java:11) Java Basics - Anfänger-Themen 2
M Exception in thread "main" java.util.NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception beim Verwenden von Arraylist? Java Basics - Anfänger-Themen 10
B Compiler-Fehler Fehlermeldung Exception in thread, falsche Eingabewert Java Basics - Anfänger-Themen 2
S JavaKara Null Exception Error Java Basics - Anfänger-Themen 4
T Eigene Exception - ohne werfen abfangen Java Basics - Anfänger-Themen 2
LiFunk Exception: es dürfen nur Nummern eingelesen werden Java Basics - Anfänger-Themen 6
low_in_the_head Eigene Exception nutzen Java Basics - Anfänger-Themen 4
1 Exception Java Basics - Anfänger-Themen 2
S Kriege Fehler "Exception in thread" beim Benutzen von SubStrings. Java Basics - Anfänger-Themen 2
I JAX-RS Exception Handling Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
J null exception Array Java Basics - Anfänger-Themen 5
H Frage zu Throw Exception Java Basics - Anfänger-Themen 2
O Exception in thread "main" java.lang.ArithmeticException: / by zero Java Basics - Anfänger-Themen 4
M Wie kann ich bei int-Variablen im exception handler auf bestimmte Strings reagieren? Java Basics - Anfänger-Themen 5
C Exception-Frage Java Basics - Anfänger-Themen 3
B Exception in thread "AWT-EventQueue-0" java.util.ConcurrentModificationException Java Basics - Anfänger-Themen 8
I Exception bei Button mit wait() und notifyAll() Java Basics - Anfänger-Themen 3
N Wie teste ich eine geworfene Exception? Java Basics - Anfänger-Themen 8
R Methoden ArrayList clonen wirft exception Java Basics - Anfänger-Themen 3
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
N Exception werfen bei falscher Datumseingabe Java Basics - Anfänger-Themen 14
A Exception handeling mit finally und objektreferenzen Java Basics - Anfänger-Themen 6
D Frage zu Strings einer Exception Java Basics - Anfänger-Themen 4
S Exception Java Basics - Anfänger-Themen 2
J Exception-Aufgabe Java Basics - Anfänger-Themen 8
S Verwenden von throw Exception an der Funktion Java Basics - Anfänger-Themen 2
R Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException Java Basics - Anfänger-Themen 5
S Compiler-Fehler Exception in thread "main" java.lang.Error: Unresolved compilation problem: Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben