Сортировка минимальным элементом

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

Мы уже поговорили об одном методе сортировке — парная сортировка. Сейчас поговорим о сортировке методом минимального элемента, по мне так они почти одна в одну, очень походи между собой, да и по скорости наверное почти одинаковые, но кому как нравится, методом минимальным элементом самая легкая сортировка. Да и не забываем, что мы до сих пор работает с одномерным массивом, но ее можно применять и для двумерных, например отсортировать строки так-то, так-то. Суть данной сортировки заключается в том, что мы каждый элемент массива принимаем за минимальный элемент и затем начиная с элемента, который стоит за этим минимальным сравниваем с ним, если меньше или больше (в зависимости от сортировки, по возрастанию или по убыванию), то делаем перестановку данных элементов, перестановку как делать думаю знаете и тут рассказывать нечего, но на всякий случай, дополнительную переменную заводим для хранения промежуточной информации и далее меняем. И это дело продолжается пока не закончится цикл, то есть вот и есть минус сортировки, в любом случае цикл до конца пройдет. Так как работаем мы с одномерным массивом, то сделаем из TStringGrid - одномерный массив. На форме у меня следующие компоненты

  • 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
      min:=StrToInt(StringGrid1.Cells[i,0]);
      for j:=i+1 to StringGrid1.ColCount-1 do
       begin
        if (StrToInt(StringGrid1.Cells[j,0]))<(StrToInt(StringGrid1.Cells[i,0])) then
         begin
          b:=StrToInt(StringGrid1.Cells[j,0]);
          StringGrid1.Cells[j,0]:=StringGrid1.Cells[i,0];
          StringGrid1.Cells[i,0]:=IntToStr(b);
          min:=StrToInt(StringGrid1.Cells[j,0]);
         end;
       end;
     end;
   except
    on e:Exception do
   end;
end;

Все, что выше описал, все перевели на язык Delphi. Так, что теперь уже знаем два метода сортировки и спокойно можем применять его в своих проектах. В следующий раз я расскажу как применять сортировку на примере какой-нибудь записи.

Facebook Vk Ok Twitter LinkedIn Telegram

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

Вот и хотел бы начать цикл сортировки одномерных массивов. Начать хотел бы с парной сортировки, хотя не стоило бы, наверное надо было начать с сортировки выбором минимального элемента, так как она самая медленная на мой взгляд, самая простая, да и парная сорти...