IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> задача про сортировки, ..переполнение стэка
zzq
сообщение 12.12.2005 11:52
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  0  +


Народ, помогите пажалуста прогу сделать(TP7)..
1. объясните почему при сортировке массива включением и быстрым методами у меня переполняется стэк, как это исправить??
2. а в двоичном поиске пишет, что элемент находится на нулевой позиции..

З.ы. Паскаль начал изучать совсем недавно, поэтому сложные алгоритмы подробно(по возможности) опишите..
Свои версии проги кидайте на мыло: <...> ..Заранее спасибо!!
З.з.ы. Господа модераторы, не серчайте и не судите строго, если что не так..

Это по-твоему форум или доска объявлений? Правила читал?

Сообщение отредактировано: volvo - 12.12.2005 14:05


Прикрепленные файлы
Прикрепленный файл  1.PAS ( 7.78 килобайт ) Кол-во скачиваний: 234
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
volvo
сообщение 12.12.2005 12:02
Сообщение #2


Гость






А при каком размере массива у тебя происходит Stack Overflow? Вообще-то стек в TP автоматически устанавливается в 16К, можно увеличить до 64К, но при размере массива, например, в 10000, это тебя не спасет...
 К началу страницы 
+ Ответить 
zzq
сообщение 13.12.2005 17:07
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  0  +


..ошибку выдаёт даже при 12 элементах, а мне 10000 надо как минимум..пробовал различные версии сортировок, и везде стэк переполняется..не пойму почему в этих двух сортировках он переполняется, а скажем в пузырьбке или выборе 15000 сортирует без проблем??..может как-то нужно проводить очистку стэка перед запуском п/п..стэк переполняется на слове begin в начале п/п..

З.ы. канечно же не доска объявлений, а разве запрещено опубликовывать своё мыло, или это только в раздел "..на заказ"?? ..кстати правила форума у вас не работают..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 13.12.2005 17:25
Сообщение #4


Гость






Не в стеке дело...

У тебя просто процедура быстрой сортировки (я пока только ее проверил) не совсем корректно написана, и зацикливается... Вот тебе пример НЕзацикливающейся процедуры Quick:
Procedure Quick(Var sorted: mas;
min, max: integer);

Function Incr(Var x: Integer): Integer;
Begin Inc(x); Incr := x End;
Function Decr(Var x: Integer): Integer;
Begin Dec(x); Decr := x End;

Procedure SwapIndex(i, j: Integer);
Var T: Integer;
Begin
T := sorted[i]; sorted[i] := sorted[j]; sorted[j] := T;
End;

Var
i: Integer;

Procedure qSort(pLow, pHigh: Integer);
Var
iHi, iLo: Integer;
T: Integer;
Begin
If pLow < pHigh Then
Begin
iLo := pLow;
iHi := pHigh + 1;
T := sorted[pLow];

While True Do
Begin
While sorted[Incr(iLo)] < T Do ;
While sorted[Decr(iHi)] > T Do ;

If iLo < iHi Then
SwapIndex(iLo, iHi)
Else Break
End;

SwapIndex(pLow, iHi);
qSort(pLow, iHi - 1);
qSort(iHi + 1, pHigh);
End;
End;

Begin
qSort(min, max);
End;

Подставь ее вместо своей и будет тебе счастье...

Чуть позже посмотрю и остальные методы...

P.S. Читай Правила Форума (пункт 1.12)
 К началу страницы 
+ Ответить 
zzq
сообщение 14.12.2005 3:01
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 34
Пол: Мужской

Репутация: -  0  +


остальные я уже сделал, а быстрый метод теперь 1024 сортирует, а дальше не хочет, та же ошибка.. а главное когда кроме неё(quick sort) блольше никаких процедур нет, все работает..а как время вставляю - все..

..щас твою попробую подставить..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 19.07.2025 14:40
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"