![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 10.04.2009
Сообщений: 69
|
![]()
Доброго времени суток!
В своей бакалаврской работе столкнулся с такой проблемой: у меня есть структура Код:
Мне нужно отсортировать Table по возрастанию полей T (приоритет 1) и C (приоритет 2). Например дано: Table[0]: T=1.2, C=0 Table[1]: T=1.2, C=1 Table[2]: T=0.1, C=0 Table[3]: T=3.9, C=1 в отсортированном виде,мне нужно получить: Table[0]: T=0.1, C=0 Table[1]: T=1.2, C=1 Table[2]: T=1.2, C=0 Table[3]: T=3.9, C=1 Рассматривал два способа сортировки: 1. Переопределил операцию сравнение для struct: Код:
Код:
--- Спасибо за внимание! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
А стандартно через qsort?
И вместо оператора определить функцию сравнения compare(void * elem1, void * elem2); |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 10.04.2009
Сообщений: 69
|
![]()
А можно, пожалуйста, по подробнее об указанном Вами способе?
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Условно так:
Код:
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.04.2009
Сообщений: 69
|
![]()
Спасибо большое!
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
Petruha-nsk
Мне нужно отсортировать Table по возрастанию полей T (приоритет 1) и C (приоритет 2). Например дано: Table[0]: T=1.2, C=0 Table[1]: T=1.2, C=1 Table[2]: T=0.1, C=0 Table[3]: T=3.9, C=1 в отсортированном виде,мне нужно получить: Table[0]: T=0.1, C=0 Table[1]: T=1.2, C=1 Table[2]: T=1.2, C=0 Table[3]: T=3.9, C=1 какая-то странная сортировка.. в результирующем массиве элементы 1 и 2 имеют одинаковое значение T=1.2, а сортировка по полю "C" не соответствует тому, что было озвучено в условии. если все это нужно не более, чем для какой-нибудь студенческой поделки, то можно воспользоваться способом выше - сортировка через qsort. А если все по-сурьёзному, тогда лучше выбирать профессиональные инструменты - как-то так: Код:
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.04.2012
Сообщений: 27
|
![]()
Если без дополнительных библиотек -
Код:
Последний раз редактировалось SergeyCh; 09.05.2012 в 02:23. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 10.04.2009
Сообщений: 69
|
![]()
Вау. За такое отдельное огромное спасибо!
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Какая среда лучше? | generic1 | Общие вопросы C/C++ | 6 | 13.04.2011 16:13 |
Какая ОС лучше на игровом сервере? | zlo_999 | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 07.03.2011 00:37 |
Какая специальность лучше? | Vivo | Свободное общение | 4 | 02.04.2010 22:45 |
Какая БД лучше ? ? ? | RIO | БД в Delphi | 11 | 13.07.2009 07:29 |
Какая книга лучше? | Kandela | Свободное общение | 3 | 29.05.2008 19:52 |