|
Вопрос # 2 780/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
У меня есть следующая структура:
type
TMyUserData = record
UID: Word;
UGroupID: Word;
UPriorInGroup: Byte;
end;
и массив
var
UserData: array[1..100] of TMyUserData;
Подскажите как мне отсортировать этот массив сначала по полю UGroupID, а потом еще по полю UPriorInGroup.
Заранее спасибо!
 |
Вопрос задал: Muratov Radik (статус: Посетитель)
Вопрос отправлен: 14 мая 2009, 15:02
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, Muratov Radik!
думаю, на таких размерах, сортировка пузырьком будет достаточно.
"сначала по полю UGroupID, а потом еще по полю UPriorInGroup." - это две разных сортировки или одна, но если первое поле совпадает, то сортировать по второму? Я думаю, что это второй вариант, соответсвенно и код.
var
temp:TMyUserData;
begin
for i := 1 to 99 do
for j := i+1 to 100 do
if ((Userdata[i].UGroupID > Userdata[j].UGroupID) or (Userdata[i].UGroupID = Userdata[j].UGroupID) and
(Userdata[i].UPriorInGroup > Userdata[j].UPriorInGroup)) then
begin
temp := Userdata[i];
Userdata[i] := Userdata[j];
Userdata[j] := temp;
end;
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 14 мая 2009, 16:33
Оценка за ответ: 5
Комментарий к оценке: Большое спасибо! Вариант действительно второй. И прошу прощения за вопрос такой. Что-то я "затупил" поначалу, даже не смог нормально сформулировать, но потом сам разобрался. Но все-равно спасибо!
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|