Bubblesort

Ein sehr elementares Sortierverfahren ist der Bubblesort. Die Implementierung ist einfach zu realisieren und gut nachvollziehbar. Nachteil ist die lange Programmlaufzeit durch viele Vertauschungsoperationen.

Bubblesort

Ablauf:

Direkte Nachbarn im Gesamtfeld werden miteinander verglichen und miteinander vertauscht, wenn die Ordnungsrelation (> oder <) nicht erfüllt ist. Der Vorgang muss das gesamte Feld durchlaufen und so lange wiederholt werden, bis keine Vertauschungsoperationen mehr durchgeführt werden.

Vorschau

bubbleSort

Implementieren Sie den Bubblesort in Matlab zum Sortieren eines Vektors. Orientieren Sie sich dabei an der Beschreibung und dem gegebenen Struktogramm.

  • Sortieren Sie den Vektor, den Sie mit dem Befehl A = fix(100*rand(1,20)) erzeugen vom kleinsten bis zum größten Element. Die Funktion fix() rundet hierbei jeden Wert des Vektors ab.

 

Lösung:

Bubblesort Algorithmus

function Y = bubbleSort(X)
n = length(X); %Länge des Vektors abspeichern

for ii = 1:n-1 %Durchlaufen vom ersten bis zum letzten Element
for jj = n-1:-1:ii %Durchlaufen des Feldes n-1 bis ii
if X(jj) > X(jj+1)
%Vertauschoperation
zw = X(jj);
X(jj) = X(jj+1);
X(jj+1) = zw;
end
end
end

Y = X;

Aufruf mit:

>> A=fix(100*rand(1,20));
>> Asortiert=bubblesort(A);