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

Delphi

Сортировка пузырьком

Проходим по массиву от начала до конца. Если текущий элемент больше следующего, меняем их местами. Повторяем проходы, пока перестановки не прекратятся.

type
  TAI = array of integer;
...
procedure BubbleSort(var A: TAI);
var
    i, j, k: Integer;
begin
  j := High(A)-1;  // Правая граница несортированного.
  while j > Low(A) do // Пока есть несортированное...
  begin
    k := Low(A); 
    for i := Low(A) to j do // проходим по несортированному участку.
    begin
      if A[i] > A[i+1] then
      begin
        swap(A[i], A[i+1]);
        k := i; // Фиксируем новый рубеж сортировки.
      end;
    end;
    j := k; // Проход закончен, передвигаем границу несортированного.
  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-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и абзацы переносятся автоматически.