Показать сообщение отдельно
  #1  
Старый 05.10.2011, 19:01
badtrips badtrips вне форума
Прохожий
 
Регистрация: 06.06.2011
Сообщения: 29
Репутация: 10
По умолчанию подскажите логику работы цикла по массиву из свойства структуры

есть структура
Код:
unit Unit_Def;

interface

type
Sportsmen = record
  Surname:ShortString;
  Name:ShortString;
  //Date_of_birth:ShortString;
  Day_of_Birth:integer;
  Month_of_Birth:integer;
  Year_of_Birth:integer;
  Weight:byte;
  Height:byte;
  Sex:ShortString;
end;

Mass = array of Sportsmen;
и массив
Код:
Massiv:Mass;
делаю какой нибудь массив и нужно его отсортировать пузырьком по свойству Weight.
придумал такое :
Код:
procedure Puzyrek(var Massiv:Mass;k:integer);// k - размер массива
var
i,j,m,n:integer;
Temp:Mass;//временная переменная для перемещения
begin
setlength(Temp,1);
for j:=0 to k-1 do
begin
  with Massiv[j] do
  m:=Weight;
    
    for i:=0 to k-2 do
    begin
    
    with Massiv[i+1] do
    n:=Weight;
    
    if m>n then
    begin
    Temp[0]:=Massiv[j];
    Massiv[j]:=Massiv[i+1];
    Massiv[i+1]:=Temp[0];
    
    end;
    end;
end;
end;
наверху написано всё криво,никак не могу придумать логику такой процедуры,решил только ввести m и n что бы сравнивать значение Weight
и сортировать..Есть какой нибудь ещё способ сортировки в таком случае?И из того что я начал делать что нибудь придумать можно?
Ответить с цитированием