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

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

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

> Рекурсии
Вадим
сообщение 10.10.2004 21:09
Сообщение #1





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

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


Помогите написать программу.
Разработать рекурсивную процедуру двоичного поиска элемента массива, равного данному числу.

Сообщение отредактировано: Вадим - 10.10.2004 21:10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
godd
сообщение 11.10.2004 0:17
Сообщение #2


Новичок
*

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

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


скорость поиска увеличиться? ну разве что в отсортированном массиве, а ведь его еще надо будет отсортировывать - так что в итоге во времени проигрышь. разве что сортировка массива подразумевается условием самой задачи.

я тут кое-чо тоже написал
вот процедура:
Код
procedure IndexOfArray(niz,verh,iskomoe:byte)
begin
if niz<verh then
  if arr[round(verh*0.5)]>iskomoe then IndexOfArray(niz,round(verh*0.5),iskomoe)
  else IndexOfArray(round(verh*0.5),verh,iskomoe);
end
Должно работать, сам не проверял. Предполагается что массив уже отсортированный, первоначально verh:=конец_массива, niz:=начало_массива, Iskomoe:=Искомое. Предполагается что array[x..n] of byte, но в под конкретный тип переделать - просто.

P.S. Вадим, переделай эту фигню в функцию
P.P.S Я на C++ переехал, про функции - если понадобяться, то потом почитаю. Пока не надо )) => сам делай

__________
вначале по привычке trunc написал. надо - round [округление по правилам математики]

Сообщение отредактировано: godd - 11.10.2004 1:26
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Вадим   Рекурсии   10.10.2004 21:09
Amro   А массив уже упорядочен чтоль, или его ещё сортиро...   10.10.2004 21:31
Вадим   Условие точное, но скорее всего массив надо сортир...   10.10.2004 21:43
godd   что такое двоичный поиск? поиск двоичного числа? и...   10.10.2004 22:32
Amro   Нет godd это не поиск двоичного числа это поиск ...   10.10.2004 23:27
fms   двоичный т.е. бинарный? :) со строками.. :) ну мож...   11.10.2004 0:07
godd   скорость поиска увеличиться? ну разве что в отсорт...   11.10.2004 0:17
godd   посчет времени - рекурсия это вообще дело нехороше...   11.10.2004 1:18
Amro   Я в общем тоже времени не терял, написал тут одну ...   11.10.2004 1:27
godd   недоглядел в тексте Amro. Не то написал. Удалить п...   11.10.2004 1:35
godd   Amro по поводу рекурсии - это я прочитал где-то.   11.10.2004 1:36
godd   Недоглядел я. Ему ж процедура нужна была. А я врод...   11.10.2004 1:46
Amro   Ты прав надо сравнивать только с крайним элементом...   11.10.2004 1:49
Amro   Во во я также сначала функцией пытался сделать, то...   11.10.2004 1:52
godd   мона. вначале проги randomize ставишь, а элементы...   11.10.2004 9:14
Guest   Как сделать, чтобы исходные данные вводились из те...   21.10.2004 20:54
Amro   Создаешь текстовый файл, заносишь туда данные при ...   21.10.2004 21:23
Гость_Вадим   Amro, если будет не в лом, то доделай, пожалуйста   21.10.2004 21:34
Amro   Держи Вадим Разбирайся!!! Прога созд...   22.10.2004 21:03


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

 



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