#1 20. Dezember 2007 Bubble Sort - Wer kann mir es erklären? Moin Board Ich hab per Copy Paste endlich die Aufgabe "BubbleSort" hinbekomme, aber ich verstehe den Quelltext nicht, besonders in den Zeilen in denen Abgefragt und Sortiert wird. Könnte mir jemand darin helfen ? Code: import java.util.*; public class arraysortieren { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] a = new int[100]; //array erstellen Random rand = new Random(); //array mit Zufallszahlen füllen for (int i=0; i < 100; i++) //array mit Zufallszahlen füllen { //array mit Zufallszahlen füllen a[i] = rand.nextInt(1000); //array mit Zufallszahlen füllen } //array mit Zufallszahlen füllen int n = a.length; int temp; for (int i=0; i < n-1; i=i+1) for (int j=n-1; j > i; j=j-1) if (a[j-1] > a[j]) { temp = a[j-1]; a[j-1] = a[j]; a[j] = temp; } System.out.println("" +a[1]); //Ausgabe des Wert 1 im Array System.out.println("" +a[2]); System.out.println("" +a[4]); System.out.println("" +a[5]); System.out.println("" +a[6]); System.out.println("" +a[7]); } } + Multi-Zitat Zitieren
#2 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? Die erste Forschleife geht aufsteigend durch das array. die innere schleife absteigend. So wird klargestellt, dass alle zahlen sortiert werden. Hätte es nur die innere schleife, würden nicht alle Zahlen mit allen Zahlen verglichen. j > i; steigert die performance, da nach dem ersten durchgang in diesem Beispiel die kleinste Zahl in a[0] steht und nach dem zweiten durchgang die zweitkleinste in a[1]. So werden diese Zahlen nicht mehr überprüft. Es könnte auch j > 0 heissen. Wenn dann die zahl bei a[j-1] < a[j] ist, werden die beiden vertauscht. Verdeutlichung: Zahlen: 5 1 6 3 4 Nach erstem Durchgang der 1. Schleife: 1 5 3 6 4 Nach zweitem Durchgang: 1 3 5 4 6 Nach drittem Durchgang: 1 3 4 5 6 ich hoffe ich konnte helfen! + Multi-Zitat Zitieren
#3 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? hi, der quelltext sieht richtig gut aus!!! aber eins kann ich nicht verstehen, wenn du in dem array beliebige zahlen hast, dann kannst du doch aich die zur verfügunggestellten java-funktion sort(); verwenden. LINK nice day!!! + Multi-Zitat Zitieren
#4 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? Es geht denk ich um den algo des sortierens, oder? Wir machen das auch grad in der schule ... Hab da ein blatt dazu ich suchs mal und scanns ein + Multi-Zitat Zitieren
#5 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? Die Strategie des Algorithmus sieht folgerdermaßen aus: - 1. und 2. Element vergleichen und Maximum an 2. Stelle setzen.+ - 2. und 3. Element vergleichen und Maximum an 3. Stelle setzen; usw., bis zum Ende des Feldes. Damit ist das Maximum des Feldes ans Ende gewandert. - Das Verfahren für das Restfeld wiederholen; usw., bis es kein Restfeld mehr gibt. hoffe, das hilft dir ein wenig. Und wenn man Bubblesort verstanden hat, kann man Superbubblesort auch + Multi-Zitat Zitieren
#6 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? Die Sortierung findet in diesen Zeilen statt Code: if (a[j-1] > a[j]) { temp = a[j-1]; a[j-1] = a[j]; a[j] = temp; } Dabei wird halt das aktuelle Feld mit dem Nachfolgefeld des Arrays verglichen. Im ersten Durchgang a[0] mit a[0+1] (also a[1]). Wenn das Nachfolgefeld a[1] größer ist als a[0]... werden die beiden Werte der Felder ausgetauscht. Da es keinen direkten Befehl zum austauschen zweier Variablen gibt, geschieht das alle über die Zwischenvariable temp. a[1] wird also erst Temo zugewiesen... danach erhät a[1] den Wert von a[0].. und a[0] erhällt den Wert von temp. Im zweiten durchlauf ist j dann 1 .. also werden a[1] und a[1+1] (a[2])miteinander vergleichen und ggf wiede ausgetauscht. Dies geschieht so lange bis alle großen zahlen ganz links und alle kleinen ganz rechts sind + Multi-Zitat Zitieren
#7 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? wenn man wirklich sicher gehen will, dass man es versteht, kann man ja anhand eines struktogramms einen schreibtischtest machen. + Multi-Zitat Zitieren
#8 20. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? Also zu Sortiertalgorithmen gibt es super Erklärungen auf Allgemeine und spezielle Sortieralgorithmen + Suchalgorithmen , Bubblesort – Wikipedia oder Galileo Computing - openbook - Bücher online lesen und herunterladen + Multi-Zitat Zitieren
#9 31. Dezember 2007 AW: Bubble Sort - Wer kann mir es erklären? Weiterleitung/Redirect Dieses Applet find ich ganz gut. Es wird alles veranschaulicht und man sieht wo man sich im Quellcode gerade befindet + Multi-Zitat Zitieren