![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Lacoste1024 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
Есть реализация сортировки кучей (heapsort):
При размере массива сортируемых данных 10^4 и меньше всё прекрасно работает. Если размер массива 10^5, выводится "Ошибка сегментирования". Данные в программу поступают из текстового файла. На этих же данных пробовал другие методы сортировки - всё прекрасно работает. В чём причина неисправности? Если возможно, дайте ссылку на работающий код Это сообщение отредактировал(а) Lacoste1024 - 19.3.2012, 21:17 |
|||
|
||||
| ambler |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 27.10.2009 Репутация: нет Всего: нет |
Как вариант, т.к. тут рекурсия, может стек заканчивается?
|
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Логичное предположение. Можно проверить: в функции MaxHeapify объявить внутренний массив элементов эдак на 10000. Если станет падать на меньших размерах, то предположение верное.
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| Lacoste1024 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 20.3.2011 Репутация: нет Всего: 1 |
В Maxheapify объявил простой массив int размером 100000. Всё так же работает и при 100, 1000, 10000. А при 10^5 Ошибка сегментирования. Кстати попробовал поперебирать значения входного массива. На 18000 выдаёт ошибку. Это и при старом и при новом коде(с объявленным массивом внутри MaxHeapify)
Попробовал решить проблему при помощи глобальной переменной. Не помогло =( Добавлено @ 20:21 Проблема решена. нашёл другой код. Работающий =)
Это сообщение отредактировал(а) Lacoste1024 - 19.3.2012, 21:18 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
Если включена оптимизация, то компилятор просто выкинул объявление неиспользуемого массива
-------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 11 Всего: 45 |
-------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| sergioK1 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 30.1.2011 Репутация: нет Всего: нет |
||||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
а нет, ошибся. сорри. удалил.
Это сообщение отредактировал(а) volatile - 21.3.2012, 14:39 |
|||
|
||||
| borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 22 Всего: 135 |
volatile, max по любому будет инициализирована в этих строках
а т.к. приведённая Вами строка идёт после этих, то всё д.б. хорошо -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 37 Всего: 85 |
||||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |