Добавить комментарий

Delphi

Медленная сортировка

Разделим массив пополам, рекурсивно отсортируем каждую половину. Сравним крайние правые(наибольшие) элементы в каждой половине, при необходимости, обменяем. Теперь максимальный элемент гарантировано самый правый. Рекурсивно отсортируем оставшийся диапазон без правого элемента...

procedure SlowSort(var A: TAI);

   procedure Slow(Left, Right: integer);
   var
       mid : integer;
   begin
     if Left >= Right then Exit;
     mid := (Left + Right) div 2;
     Slow(Left, mid);
     Slow(mid + 1, Right);
     if A[mid] > A[Right] then swap(A[mid], A[Right]); 
     Slow(Left, Right - 1);
   end;
begin
  Slow(Low(A), High(A));
end;

Очевидно, это один из непрактичных вариантов сортировки.

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Допустимые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и абзацы переносятся автоматически.
  • Вы можете цитировать другие сообщения, используя тэг [quote]

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.