Delphi World - Сортировка методом Пузырька
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Сортировка методом Пузырька

Автор: Cyber
WEB-сайт: http://delphibase.endimus.com

{ **** UBPFD *********** by delphibase.endimus.com ****
>> Обычная сортировка методом "пузырька"

ПРостой способ отсортировать массив данных

Зависимости: стандартный набор
Автор:       Oleg Yu. Borodin AKA Cyber, ICQ:52779990, Tomsk
Copyright:   Oleg Yu. Borodin AKA Cyber
Дата:        16 февраля 2004 г.
***************************************************** }

var
  l, m, mi, d: integer;
  mWin: array[0..8] of integer;
begin
  Randomize;
  for l := 0 to 8 do
    mWin[l] := Random(100);
  for l := 0 to 7 do //последний элемент не считаем - он уже будет
    //стоять на своем месте
  begin
    d := 0;
    mi := 0; //ищем максимальный элемент
    for m := l to 8 do
      if mWin[m] > mi then
      begin
        mi := mWin[m];
        d := m; //находим позицию максимального элемента массива
      end;
    mi := mWin[l]; //текущий сохраняем
    mWin[l] := mWin[d]; //вставляем максимальный
    mWin[d] := mi; //текущий переставляем на свободное место
  end;
end; //все
// Сортировка методом пузырька
procedure SortList(lbNum: TStrings);
var
  i, j, b_val, b_j: integer;
begin
  if lbNum.Count > 1 then
    for i := 0 to lbNum.Count - 2 do
    begin
      b_val := StrToInt(lbNum[i]);
      b_j := i;
      for j := i + 1 to lbNum.Count - 1 do
      begin
        if StrToInt(lbNum[j]) < b_val then
        begin
          b_val := StrToInt(lbNum[j]);
          b_j := j;
        end;
      end;
      lbNum[b_j] := lbNum[i];
      lbNum[i] := IntToStr(b_val);
    end;
end;

// Пример использования
procedure TForm1.Button1Click(Sender: TObject);
begin
  SortList(ListBox1.Items);
end;
Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования