Bubble Sort

Shakra

Aktives Mitglied
Hi,
ich versuche den bubble sort algorithmus hinzubekommen aber habe es nicht hingekriegt und dann irgendwo einen code abgeschrieben...
Naja aber es funktioniert iwie auch nicht..Und was ich auch nicht verstehe ist, warum man in der for schleife i<array.length-j nimmt..ich würde einfach -1 nehmen..

hier ist der code:
Java:
public class Bubble_Sort {
	
	int[] sortiere(int[] array){
		boolean swapped = true; 
		int j=0;
	while(swapped){
		swapped = false;
				j++;
		for(int i=0; i<array.length-j; i++){
			int merke = i;
			if(array[i]> array[i+1]){
				array[i] = array[i+1];
				array[i+1] = array[merke];
				swapped = true;
			}
		}
	}
		
	return array;
	}
	
	public static void main(String[] args){
		int[] liste = new int[10];                          //Diese Liste wird nicht benutzt..
		for(int i=0; i<liste.length; i++){
			liste[i] = i*i;
		}
		
		int array[] = {34,56,4,2,34,65,3,4,1,56,43,54,7,0,8,76,5,456,45,46,76,75,77};
		Bubble_Sort sort = new Bubble_Sort();
		for(int i: sort.sortiere(array)){
		System.out.print(" "+i);}
	}
}
Ausgabe = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 45 45 46 75 75 77

Meine nicht abgeschriebene version sah so aus:
Java:
public class Bubble_Sort {
	
	int[] sortiere(int[] array){
		for(int j=0; j<array.length; j++){
			for(int i=0; i<array.length-1; i++){
				int merke = i;
				if(array[i]> array[i+1]){
					array[i] = array[i+1];
					array[i+1] = array[merke];
			
			}
		}
	}
		
	return array;
	}
...(untere Teil ist gleich)
ausgabe:  0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 45 45 46 75 75 77
 

XHelp

Top Contributor
Der Tausch der Variablen ist falsch. Was soll denn da passieren? Nimm mal ein Zettel und ein Stift und Spiel das nach.
-j statt -1 machst du, weil du immer kleinere Bereiche abgrasen willst: nach dem ersten Durchlauf ist ja die hintere Zahl definitiv die größte, das brauchst du nicht nochmal zu überprüfen.
 

njans

Top Contributor
Java:
array[i+1] = array[merke];
Du speicherst nicht die Zahl als "merke", die musst du auch direkt verwenden! Also
Java:
 merke = array[i];
array[i] = array[i+1];
array[i+1] = merke;
 

Shakra

Aktives Mitglied
Hm..Also; wenn der nächste [j+1] zahl kleiner ist als j(10,2), werden sie einfach getauscht.
j wird j+1
und j+1 wird j..oder ist das iwie falsch?
 

Shakra

Aktives Mitglied
Java:
array[i+1] = array[merke];
Du speicherst nicht die Zahl als "merke", die musst du auch direkt verwenden! Also
Java:
 merke = array[i];
array[i] = array[i+1];
array[i+1] = merke;

hee..ist mir so paar mal durch den kopf gegangen aber das müsste doch eig. dasselbe sein..aber anscheinend nicht..es funktioniert jetzt..komisch..
 

njans

Top Contributor
Das ist schon richtig. Bubblesort läuft alle zahlen durch und vertauscht zwei zahlen, die nebeneinander liegen, sofern sie nicht geordnet sind. Nach jedem Durchlauf wird geguckt, ob mindestens einmal getauscht wurde. Wenn ja, dann wird alles nochmal durchlaufen. Wenn nein, dann ist der Algo. fertig.

Edit:
hee..ist mir so paar mal durch den kopf gegangen aber das müsste doch eig. dasselbe sein..aber anscheinend nicht..es funktioniert jetzt..komisch..

Das ist eben nicht das selbe. Bei deinem Beispiel wird merke zu dem Index i. Und wenn du dann vorher den Wert für Index i im Array mit dem Wert i+1 überschreibst, dann kopierst du den einfach nur.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
P Java Bubble Sort,Anfängerfehler Java Basics - Anfänger-Themen 4
N Bubble Sort sortieren mit Int Werte Java Basics - Anfänger-Themen 8
N Schlüsselworte Bubble Sort nach eigener Ordnung Java Basics - Anfänger-Themen 8
S Liste und Bubble Sort Java Basics - Anfänger-Themen 4
S Bubble Sort Algorithmus Java Basics - Anfänger-Themen 3
V Bubble Sort endet in Endlosschleife Java Basics - Anfänger-Themen 4
H Bubble sort array Java Basics - Anfänger-Themen 12
M Bubble-Sort und null Werte Java Basics - Anfänger-Themen 4
G Zählen von Zuweisungen bei Bubble Sort Java Basics - Anfänger-Themen 3
V Sortieren mit Bubble-Sort Java Basics - Anfänger-Themen 5
A Bubble-Sort Java Basics - Anfänger-Themen 3
R Frage zu Bubble-Sort Java Basics - Anfänger-Themen 10
F Bubble und Insertsort Java Basics - Anfänger-Themen 3
G Sortieren (bubble) Java Basics - Anfänger-Themen 2
emreiu Formatiertes Output bei Insertion Sort Java Basics - Anfänger-Themen 6
O Sortieren mit Insertion Sort Java Basics - Anfänger-Themen 3
Tw1Z Erste Schritte Sort in java Java Basics - Anfänger-Themen 2
X Collections.sort als Lambda Java Basics - Anfänger-Themen 14
berserkerdq2 Geht collections.sort bei allen? Linkedhashset, ArrayList, HashSet etc. Java Basics - Anfänger-Themen 4
L Insertion Sort bei zweidimensionalem Array Java Basics - Anfänger-Themen 7
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
Marc111111111 Selection Sort in Java?? Java Basics - Anfänger-Themen 6
G Insertion Sort mit Aray Java Basics - Anfänger-Themen 5
O Collections.sort und List.sort mit Lambda Verwirrung Java Basics - Anfänger-Themen 5
B Collections.sort mit zwei Bedingungen? Java Basics - Anfänger-Themen 4
M Collection.sort sortiert nicht Java Basics - Anfänger-Themen 7
CptK Best Practice Merge-Sort als Baum darstellen Java Basics - Anfänger-Themen 3
S Methoden Sort Array Java Basics - Anfänger-Themen 9
I Erste Schritte sort() vs. sort() Java Basics - Anfänger-Themen 9
BadBat ArrayList<String> sort by last word Java Basics - Anfänger-Themen 8
U Methoden Zweidimensionales Array mit Arrays.sort sortieren? Java Basics - Anfänger-Themen 22
X Quick Sort - Vergleichsoperationen zählen Java Basics - Anfänger-Themen 0
O Insertion Sort Java Basics - Anfänger-Themen 4
C OOP array Sortieren ohne den sort Befehl Java Basics - Anfänger-Themen 10
S int-Array mittels Arrays.sort() in einer Schleife sortieren. Java Basics - Anfänger-Themen 2
J Fehler im Selection Sort Java Basics - Anfänger-Themen 5
O Listen sort-Methode Java Basics - Anfänger-Themen 1
M Quick Sort Java Basics - Anfänger-Themen 4
V Heap-Sort Java Basics - Anfänger-Themen 0
M Methoden Quick Sort Java Basics - Anfänger-Themen 5
T array.sort mit zwei Kriterien Java Basics - Anfänger-Themen 8
H Collections Was ist schneller - HashMap + Sort v TreeMap? Java Basics - Anfänger-Themen 75
S Fehler bei Arrays.sort(array) - Methode!? Java Basics - Anfänger-Themen 3
P collections.sort Java Basics - Anfänger-Themen 2
B Arrays.sort Java Basics - Anfänger-Themen 4
P schneller Sort ? Java Basics - Anfänger-Themen 2
B Merge-Sort Analyse Java Basics - Anfänger-Themen 27
K Array.sort() Java Basics - Anfänger-Themen 12
H Etwas wie sort() / sorted() in JAVA-Collections? Java Basics - Anfänger-Themen 5
B 2 dimensionales Array: Selection Sort Java Basics - Anfänger-Themen 4
F Methoden Insert Sort Fehler Java Basics - Anfänger-Themen 10
P Ein sort problem Java Basics - Anfänger-Themen 6
N Selection Sort Problem Java Basics - Anfänger-Themen 19
Spin sort tokens - somebody knows a better solution? Java Basics - Anfänger-Themen 13
B Strings alphabentisch sortieren mit Hilfe von insertion sort Java Basics - Anfänger-Themen 6
P Array.sort // Arrays ausgeben Java Basics - Anfänger-Themen 21
S String sortieren mit Interface und sort() Java Basics - Anfänger-Themen 6
F Arrays.sort( ) Problem Java Basics - Anfänger-Themen 14
J Liste von Integers mit Selection Sort sortieren Java Basics - Anfänger-Themen 3
B Selection sort Java Basics - Anfänger-Themen 33
E Selection Sort für beliebige Objekte Java Basics - Anfänger-Themen 24
U Selection Sort schnellere Variante Java Basics - Anfänger-Themen 17
T Selection-Sort-Algorithmus Java Basics - Anfänger-Themen 9
Dit_ Collections.sort(..); | Anwendung Java Basics - Anfänger-Themen 4
N java.util.Arrays.sort Warum sind Leerzeichen vor alphabetischen Zeichen sortiert? Java Basics - Anfänger-Themen 12
D Insertion sort auf eine liste Java Basics - Anfänger-Themen 4
X Counting Sort Java Basics - Anfänger-Themen 5
P Problem mit Insertion Sort Java Basics - Anfänger-Themen 4
G Quick Sort - bin ich zu blöd? Java Basics - Anfänger-Themen 7
D sort.exe über java aufrufen Java Basics - Anfänger-Themen 2
S Collection<Typ> sort Java Basics - Anfänger-Themen 4
hedges Insertion Sort Algorithmus problem Java Basics - Anfänger-Themen 18
N Collections Sort ArrayList<> Java Basics - Anfänger-Themen 7
K Arrays.sort() Java Basics - Anfänger-Themen 2
S Collection Sort Java Basics - Anfänger-Themen 15
O Arrays und sort Java Basics - Anfänger-Themen 4
I Selection-Sort // Array *help* Java Basics - Anfänger-Themen 2
G sort(int[] a, int fromIndex, int toIndex) Java Basics - Anfänger-Themen 5
J Selection Sort in Liste implementieren Java Basics - Anfänger-Themen 3
F Klassenmethode Arrays.sort(Object[]a) Java Basics - Anfänger-Themen 2
I Methode Arrays.sort(Object[] arr) Java Basics - Anfänger-Themen 19
K compareTo in Verbinug mit Arrays.sort() Java Basics - Anfänger-Themen 4
0 Selection Sort funktioniert nicht. Java Basics - Anfänger-Themen 3
D Frage zu Collection.sort bzw. Comparator u. Comparable Java Basics - Anfänger-Themen 2
U Array.sort auf variable Array-Größe anwenden Java Basics - Anfänger-Themen 3
D Mit java.util.Arrays.sort die negativen Zahlen hinten Java Basics - Anfänger-Themen 4
D Collections.sort() frage Java Basics - Anfänger-Themen 6
G Arrays.sort() will nicht sortieren Java Basics - Anfänger-Themen 8
G float-Array _ohne_ Arrays.sort sortieren Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben