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

Delphi

Быстрая сортировка

procedure QuickSort(AList: TList);
    procedure QSort(ALeftIdx, ARightIdx: Integer);
    var
      i, j : Integer;
      LPivotItem: TObject;
      LTempItem: IComparable;
    begin
      repeat
        i := ALeftIdx;
        j := ARightIdx;
 
        LPivotItem := TObject(AList[(ALeftIdx + ARightIdx) shr 1]);
 
        repeat
          while AList[i].CompareTo(LPivotItem)  0 do
            Dec(j);
          if i <= j then
          begin
            if (i <> j) then
            begin
              LTempItem := Items[i];
              Items[i] := Items[j];
              Items[j] := LTempItem;
            end;
            Inc(i);
            Dec(j);
          end;
        until i > j;
        if ALeftIdx < j then
          QSort(ALeftIdx, j);
        ALeftIdx := i;
      until i >= ARightIdx;
    end;
 
begin
  if AList.Count > 1 then
    QSort( 0, AList.Count - 1);
end;

Filtered HTML

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

Plain text

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