[Java] Bubble Sort - Wer kann mir es erklären?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Peedy, 20. Dezember 2007 .

  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]);
     }
     
    
    }
    
    
     
  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!
     
  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!!!
     
  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
     
  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
     
  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
     
  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.
     
  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&uuml;cher online lesen und herunterladen
     
  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
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.