Показать сообщение отдельно
  #3  
Старый 01.12.2016, 22:43
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,034
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

стандартная сортировка без учета знака. Т.е. я не вижу смысла в попытках писать оптимизированный алгоритм для такого случая. Просто сравнивать надо по модулю:
Код:
var
  A : Array Of Double;

procedure SortArrayAbs;
var
  I,J : Integer;
  B : Double;
begin
  For I := Low(A) To High(A)-1 Do
    For J := I+1 To High(A) Do
     If Abs(A[i]) > Abs(A[J]) Then
       Begin
         B := A[i];
         A[i] := A[J];
         A[J] := B;
       End;
end;
Ответить с цитированием