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

Да, кстати, хочу заметить об одной отличной возможности, которая связана с приобретением электронных авиабилетов. Скажу сразу, что это очень удобно, так как Вы это все можете организовать не выходя из дома, Вам никуда не придется ехать за билетам и не придется ждать курьера, который доставит Вам этот билет. Экономьте свое драгоценное время.
Автор статьи - Andrey53

Метки: ,

Оставить комментарий

Вы можете использовать следующие теги:

*