Einfacher Bubblesort
Ein einfacher Bubblesort ist im folgenden Quelltext dargestellt. Dieser Bubblesortalgorithmus läuft allerdings ohne zusätzliche Abbruchbedingung und es werden in jedem Durchgang stets alle Elemente durchlaufen (sehr lange Laufzeit).
int j = 0;
while(j < zahlenfeld.length){
for(int i = 0;i < zahlenfeld.length - 1;i++){
if(zahlenfeld[i] > zahlenfeld[i+1]){
int temp = zahlenfeld[i+1];
zahlenfeld[i+1] = zahlenfeld[i];
zahlenfeld[i] = temp;
}
}
j++;
}
Optimierter Bubblesort
Der optimierte Bubblesort-Algorithmus bricht ab, wenn in einem Durchlauf nicht mehr getauscht worden ist, denn auch in den nächsten Durchgängen wird dann nicht mehr getauscht und es kann bereits zu einem früheren Zeitpunkt abgebrochen werden.
Außerdem läuft der optimierte Bubblesort-Algorithmus nicht mehr durch das gesamte Feld, sondern lässt die im i-ten Durchlauf bereits sortierten i Elemente im hinteren Arraybereich unbeachtet. Mit jedem Durchlauf wird der sortierte Bereich um 1 größer.
Comments (0)
You don't have permission to comment on this page.