![]() |
|
Модераторы: bsa |
![]()
|
|
| bgalexs |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.6.2010 Где: Новосибирск Репутация: нет Всего: нет |
Доброго времени суток!Есть некоторый массив который передаем в функцию.Основная суть функции динамически построить массив указателей на переменные в этом массиве,и отсортировать указатели без перемещения указуемых переменных.
Функцию по созданию ДМУ я сделал,заполнил указатели адресами переменных,а вот как отсортировать неясно,потому что при сравнении значений адреса указателей остаются теже, а значения сортируются
Помогите разобраться, что не так, и зачем реализовывать сортировку если память выделена определенного размера,и указатели там идут по порядку? |
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
тогда
и лучше вместо i использовать count
лучше начинать с первого элемента, и сравнивать с предыдущим.. и вначале сделать проверку, что массив не пустой.. и если есть count , то зачем NULL ?! добавьте функцию swap для наглядности, по обмену значениями... это не сортировка.. для нее нужна двухмерный цикл, у вас же верхний цикл работает в качестве "if".. в гугле полно исходников разных алгоритмов сортировки.. |
||||||
|
|||||||
| bgalexs |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.6.2010 Где: Новосибирск Репутация: нет Всего: нет |
Спасибо, за рассмотрение, часть кода где использовал NULL подправил,в голову почему то не пришло использовать тот же count.
А вот по поводу сортировки не совсем понял,как можно отсортировать указатели так чтобы не перемещались переменные? если каждый указатель в массиве содержит адрес определенной переменной... не понимаю |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
||||
|
||||
| bgalexs |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.6.2010 Где: Новосибирск Репутация: нет Всего: нет |
вроде написал получилось нечто
правда нет уверенности что все работает правильно, потому как результат до сортировки такой же как и после если вставить между циклами создания массива и сортировки
|
||||
|
|||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
перечитайте замечания к предыдущему коду.. Вы их не все исправили.. |
|||
|
||||
| bgalexs |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.6.2010 Где: Новосибирск Репутация: нет Всего: нет |
перечитал,честно не вижу....тыкните на что имено обратить внимание?
Добавлено через 2 минуты и 17 секунд и еще немного не понял
почему с первого? |
|||
|
||||
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
new лишнее.. если s!=0 может тогда --s ? но условие в любом случае неверное, так как нулевой элемент сравниваться не будет. (напрягаться сейчас неохота, так как в гугле и без этого полно примеров просты сортировок) потому что при проверке_на_конец не нужно будет прибавлять единичку..
подумайте тут о том, что Вы должны поменять на самом деле.. и еще разбейте свою функцию на две, одна для заполнения массива указателей, другая для сортировки.. Это сообщение отредактировал(а) mes - 16.6.2010, 00:08 |
||||
|
|||||
| bgalexs |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 14.6.2010 Где: Новосибирск Репутация: нет Всего: нет |
Получилось вот так, в итоге понял что менять...
|
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
не плохо было бы еще избавиться от абсолютно лишней переменной p и отделить сортировку от создания.. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |