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