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

Delphi

Гномья сортировка

"...Во время перестановки гном смотрит на текущий и предыдущий садовые горшки: если они в правильном порядке, он шагает на один горшок вперёд, иначе он меняет их местами и шагает на один горшок назад. Граничные условия: если нет предыдущего горшка, он шагает вперёд; если нет следующего горшка, он закончил."

Конечно, приступать к делу обязательно с первого горшка.

На Delphi:

type
  TAI = array of integer;
...
procedure GnomeSort(var A: TAI);
var
    i: integer;
begin
  i := Low(A);
  while i <= High(A) do
  begin
    if (i = Low(A)) or (A[i] >= A[i-1]) then
    begin
      inc(i);
    end
      else
    begin
      swap(A[i], A[i-1]);
      dec(i);
    end;
  end;
end;

 

Сложность:

Максимальная O(N2)
Минимальная O(N)
Средняя O(N2)

 

Filtered HTML

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

Plain text

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