Algorytmy » Sortowanie

Sortowanie przez wymianę

Ten sposób sortowania nie jest aż tak trudny jak przykładowo QuickSort ( chociaż oczywiście są o wiele trudniejsze :)). Sortowanie przez wymianę jest szybszym algorytmem od bąbelkowego, ale wolniejsze od sortowania szybkiego. Najpierw sama procedura sortowania:
procedure Sort(var iArray : array of Integer);
var
  I : Integer;
  Temp, J, X : Integer;
begin
{ procedura sortujaca - sortowanie przez wymianę }
  for I := 0 to High(iArray) do
  begin
    Temp := i;  // przypisz numer tablicy do analizy
    for j := Temp to High(iArray) do
      if iArray[j] < iArray[Temp] then Temp := j;
 
    x := iArray[i];
    iArray[i] := iArray[Temp];
    iArray[Temp] := x;
  end;
end;


Procedura oczywiście analizuje wszystkie elementy tablicy. Druga pętla for analizuje całą tablicę od elementu I do końca tablicy. Jeżeli element J tablicy będzie mniejszy od elementu I to do zmiennej Temp zostaje dopisany wartość zmiennej J. I

Następnie zachodzi zamiana elementów tablicy.