Delphi-Help

Главная Статьи Сортировка Сортировка методом двунаправленного пузырька

Сортировка методом двунаправленного пузырька

Оцените материал
(0 голосов)


Сортировка методом двунаправленного пузырька

{Сортировка одномерного массива значений типа Double методами:
1) Двунаправленный Пузырёк (BiDirBubbleSort);
Зависимости: Math}
 
{ Сортировка Двунаправленным Пузырьком }
procedure BiDirBubbleSort(var data: array of double);
var
  i, j, limit, st: Integer;
  t: double;
  Swapped: Boolean;
begin
  limit := High(data) + 1;
  st := -1;
  while (st < limit)
  do begin
     Inc(st);
     Dec(limit);
     Swapped := False;
     j := st;
     while (j < limit)
     do begin
        if (data[j] > data[j+1])
        then begin
             t := data[j];
             data[j] := data[j+1];
             data[j+1] := t;
             Swapped := True;
             end;
        Inc(j);
        end;
     if (not Swapped)
     then EXIT
     else Swapped := False;
     j := limit - 1;
     repeat
       if (data[j] > data[j+1])
       then begin
            t := data[j];
            data[j] := data[j+1];
            data[j+1] := t;
            Swapped := True;
            end;
       Dec(j);
     until (j < st);
     if (not Swapped) then EXIT;
     end;
end;
Прочитано 5195 раз

Авторизация



Счетчики