Быстрый алгоритм сортировки больших массивовDelphi , Синтаксис , СортировкаБыстрый алгоритм сортировки больших массивов
Автор: Delirium { **** UBPFD *********** by delphibase.endimus.com **** >> Быстрый алгоритм сортировки больших массивов Сортировка вариантного массива методом Шелла. Зависимости: Variants Автор: Delirium, Master_BRAIN@beep.ru, ICQ:118395746, Москва Copyright: Delirium (Master BRAIN) Дата: 4 июня 2002 г. ***************************************************** } procedure Sorting(Down: boolean; var Data: Variant); var Skach, m, n: integer; St: boolean; Tmp: Variant; begin Skach := VarArrayHighBound(Data, 1) - 1; while Skach > 0 do begin Skach := Skach div 2; repeat St := True; for m := 0 to VarArrayHighBound(Data, 1) - 1 - Skach do begin n := m + Skach; if (Down and (Data[n] < Data[m])) or ((not Down) and (Data[n] > Data[m])) then begin Tmp := Data[m]; Data[m] := Data[n]; Data[n] := Tmp; St := False; end; end; until St; end; end; Пример использования: procedure TForm1.Button1Click(Sender: TObject); var A: Variant; i: integer; begin A := VarArrayCreate([0, Memo1.Lines.Count - 1], varVariant); for i := 0 to Memo1.Lines.Count - 1 do A[i] := Memo1.Lines.Strings[i]; Sorting(True, A); for i := 0 to Memo1.Lines.Count - 1 do Memo1.Lines.Strings[i] := A[i]; end; Статья Быстрый алгоритм сортировки больших массивов раздела Синтаксис Сортировка может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросыМатериалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Сортировка ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |