Парная сортировка

2 минуты на чтение

Вот и хотел бы начать цикл сортировки одномерных массивов. Начать хотел бы с парной сортировки, хотя не стоило бы, наверное надо было начать с сортировки выбором минимального элемента, так как она самая медленная на мой взгляд, самая простая, да и парная сортировка почти ничем не уступает сортировки минимального элемента. Смысл этой сортировки состоит в том, что, если соседний элемент (i+1-элемент) больше или меньше (в зависимости от сортировки, по возрастанию или по убыванию), то мы их просто-напросто меняем местами и так до тех пор, пока не будет встречаться таких пар в массиве. Так как работа идет с одномерным массивом, то на форме у нас

  • TStringGrid
  • TButton

В TStringGrid установлены в свойствах у меня в RowCount - 1, FixedCols-0, FixedRows-0, Options-goEditing — True.

Далее мы сортируем это все дело, что я описал выше, на OnClick TButton я написал следующий код

procedure TForm1.Button1Click(Sender: TObject);
var
 i,j,b,min,c:integer;
begin
   try
    for i:=0 to StringGrid1.ColCount-1 do
     begin
      for j:=0 to StringGrid1.ColCount-2 do
       begin
        if (StrToInt(StringGrid1.Cells[j,0]))>(StrToInt(StringGrid1.Cells[j+1,0])) then
         begin
          b:=StrToInt(StringGrid1.Cells[j,0]);
          StringGrid1.Cells[j,0]:=StringGrid1.Cells[j+1,0];
          StringGrid1.Cells[j+1,0]:=IntToStr(b);
         end;
       end;
     end;
   except
    on e:Exception do
   end;
end;

Видите мы сравниваем i-й элемент с i+1 элементом и если условие выполняется, то меняем их местами, а менять местами Вы знаете как, заводим дополнительную переменную и записываем в нее промежуточные данные. Все просто, далее сортировка минимального элемента.

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Мы уже поговорили об одном методе сортировке — парная сортировка. Сейчас поговорим о сортировке методом минимального элемента, по мне так они почти одна в одну, очень походи между собой, да и по скорости наверное почти одинаковые, но кому как нравится, методом...