![]() |
|
Модераторы: bsa |
![]()
|
|
| DimanNSK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.3.2009 Репутация: нет Всего: нет |
У нас есть функция, осуществляющая пирамидальную сортировку:
Сортирует все правильно, я одного понять не могу, почему мы child делаем равным 2*k, ведь потомки у звена дерева вычисляются как 2*k + 1 - левый и 2*k + 2 - правый. Я попробовал child = 2*k + 1, но в результате не отсортировываются два первых элемента.. Проясните ситуацию.. Пожалуйста. |
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
может они вычисляются 2*k-левый и 2*k+1-правый ? |
|||
|
||||
| DimanNSK |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 20.3.2009 Репутация: нет Всего: нет |
toxx, тогда для элемента с индексом 0, левый потомок будет иметь индекс 0, а правый 1.. Хотя по сути дела должны быть 1 и 2
|
|||
|
||||
| toxx |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 653 Регистрация: 4.3.2009 Где: НН Репутация: 4 Всего: 13 |
DimanNSK
а корень? |
|||
|
||||
![]()
|
| Правила форума "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. |