# Bubble Sort Algorithmus



## schokol4de (3. Jan 2012)

Hallo liebe Community,
in der Schule machen wir zur Zeit Java.Als Compiler benutzen wir BlueJ(-_-) Als Projekt soll ich einen Bubble Sort schreiben. Alles gut und schön das Prinzip habe ich verstanden und auch folgenden Code verfasst:

```
public void bubble_srt( int a[],int n){ 

  int i,j,t =0;
   
  System.out.println("Vor dem sortieren:\n");
   for(i = 0; i < a.length; i++)
  System.out.print( a[i]+"  ");
  System.out.println();
  
  
  for(i = 0; i < n; i++){ 
  for(j = 1; j < (n-i); j++){  
  if(a[j-1] > a[j]){  
  t = a[j-1];         
  a[j-1]=a[j];
  a[j]=t;
  }
  }
  }
  System.out.print("Nach dem sortieren:\n");
  for(i = 0; i <a.length; i++)
  System.out.print(a[i]+"  ");
  System.out.println();
  
  
  }
```
Doch nun habe ich etliche Codes wie diesen hier gefunden:

```
public static void sortiere(int[] x) {
      boolean unsortiert=true;
      int temp;
      
      while (unsortiert){
         unsortiert = false;
         for (int i=0; i < x.length-1; i++) 
            if (x[i] > x[i+1]) {                      
               temp       = x[i];
               x[i]       = x[i+1];
               x[i+1]     = temp;
               unsortiert = true;
            }          
      } 
   }
```

Wo liegen da die Unterschiede, denn beide Codes funktionieren. Und was bedeutet dieses 
	
	
	
	





```
while (unsortiert)
```
Oh und noch eine allgemeine Frage kann man mit dem Bubblesort nur Zahlen sortieren?
Ich bedanke mich im Vorraus für die Antworten
mfg schokol4de


----------



## bygones (3. Jan 2012)

man kann alles, was vergleichbar ist, sortieren

die while schleife laeuft solange bis unsorted den wert false annimmt


----------



## schokol4de (3. Jan 2012)

oke danke dann sind die letzten beiden Fragen geklärt. Doch woliegen die Unterschiede in den Beiden Codes?


----------



## langhaar! (4. Jan 2012)

Du hast in beiden Fällen eine innere Schleife, die nebeneinander liegende Elemente vergleicht und gegebenfalls austauscht.

Dein Code führt diese innere Schleife konstant oft aus.
Der andere Code führt die innere Schleife nur so oft aus, wie ein auch wirklich ein Vertauschen stattfindet.


----------

