Buublesort algo

Diskutiere Buublesort algo im Java Basics - Anfänger-Themen Bereich.
mihe7

mihe7

wäre dann meine Tabelle falsch ?
Ja. Der Algorithmus beginnt beim letzten Element und sucht in der inneren Schleife das größte Element das davor (links davon) auftritt. Dann wird das aktuell betrachtete Element mit dem gefundenen getauscht. Nächste Iteration: das vorletzte Element usw.
 
S

Sandro95

also wird beim ersten tausch mit einem größeren Element der Schleifendurchgang beendet und mit dem Vorletzten Element weiter gemacht ?
 
S

Sandro95

@ so würde die 9 aber niemals an letzter stelle geraten wo sie hingehört ?
 
J

JustNobody

Spiel den Algorithmus doch einfach einmal durch.

Was passiert denn genau? Schreib das einfach einmal auf einem Zettel genau auf.
Dann solltest du direkt sehen, wie es funktioniert mit der 9 ....
 
mihe7

mihe7

Also, Du hast ein Array feld mit den Werten {4,8,5,9,6,3,2,8,7}.

Die äußere Schleife beginnt beim letzten Element, d. h. m = i = 8. Die innere Schleife fängt bei dem Element davor an. Für dieses Array wird in der ersten Iteration der äußeren Schleife j also mit 7 initialisiert. Im Rumpf der inneren Schleife wird nun geprüft, ob das Element an Postion j größer als das Element an Position m ist. Falls ein solches Element gefunden wurde, wird m auf j gesetzt, so dass m das bislang größte gefundene Element darstellt (m steht wohl für maximaler Wert). Am Ende der inneren Schleife ist m also der Index des größten Elements, das sich links vom Element an Position i befindet.

Für i = 8 gilt feld[i] == 7. Die 9 ist größer als 7, daher wird nach der inneren Schleife m == 3 gelten. Jetzt wird das Element an Position i mit dem Element an Position m getauscht, folglich ergibt sich nach dem ersten Durchlauf der äußeren Schleife {4,8,5,7,6,3,2,8,9}
 
S

Sandro95

@JustNobody meine Tabelle die ich eben geschickt habe ist also falsch , richtig ? So wie mir @mihe7 erklärt hat würde beim ersten durchgang die 8 mit der 7 getauscht werden . so beim zweiten durchgang fangen wir fdann doch beim index7 an und kommen doch nicht mehr dran am index 8 wo die 8 drin steht .
Wie soll dann später die 9 dort hinkommen?
 
S

Sandro95

@mihe7 ja dann müsste aber doch meine Tabelle stimmen ? oder wird NUR das größte Element dann getauscht ? alsi die 9 im Index 7 wird nicht getauscht sondern die 9 im index 4 mit der 7 im index 8 ?
 
S

Sandro95

jetzt verstehe ichs , nur das gröte element wird im jeden durchgang getauscht , richtig ?
 
M

Meniskusschaden

woran erkenne ich bzw kann ich einen bubblesort von einem Selectionsort unterscheiden ?
Diese Sortieralgorithmen haben ja sehr sprechende Namen, die die Algorithmus-Idee gut beschreiben. Man muss sich also nur z.B. per Schreibtischtest ansehen, wie der Algorithmus arbeitet und kann es dann schon ganz gut zuordnen.

Das größte/kleinste Element des unsortierten Bereichs steigt durch Positionstausch mit dem Nachbarn kontinuierlich nach oben bis an die Spitze des unsortierten Bereichs (wenn man sich eine vertikale Anordnung vorstellt).
Verhalten wie eine Luftblase im Wasser => BubbleSort.

Man sucht sich das größte/kleinste Element des unsortierten Bereichs heraus (komplex) und legt es in den sortierten Bereich (trivial).
Hauptarbeit beim Auswählen des Elements => SelectionSort.

Man nimmt sich das nächste Element des unsortierten Bereichs (trivial) und fügt es an der richtigen Stelle im sortierten Bereich ein (komplex).
Hauptarbeit beim Einfügen => InsertionSort.
 
U

user30

woran erkenne ich bzw kann ich einen bubblesort von einem Selectionsort unterscheiden ?
BS vertauscht direkt,
SS sucht das Maximum oder Minimum und vertauscht dann,
InsertionSort fügt ein und schiebt alle Elemente auf oder erstellt eine neue Kollektion.
Das sind die wesentlichen Unterschiede, von jedem Algorithmus gibt es aber unterschiedliche Varianten in der Umsetzung.
Deswegen ist es gar nicht schlecht, dass euch Code gegeben wird.
Solche Tabellen sind aber immer Horror.
 
Thema: 

Buublesort algo

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben