1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| Sardukar |
Сообщение
#1
|
|
Группа: Пользователи Сообщений: 7 Пол: Мужской Реальное имя: Alexander Репутация: 0 |
Всем добрый вечер. Надеюсь обращаюсь туда)
Суть проблемы, к сожалению у меня некоторые проблемы с созданием скриптов (мозг не так заточен), не могу написать скрипт на алгоритм. Алгоритм бинарного поиска, с поиском ключа. Как пример> есть ряд чисел {2,4,5,6,8,10,12,14,16,17,18,20,22,24,25,27,28,30,31} Ключ=16 Метод основан на выделении центра этого множества, или массив, кому как угодно. формулы: Ц(центр)=[n/2]+1 если множество нечётное Ц=[n/2] если множество чётное n=количество чисел в множестве, в данном случае n=19 нечётно решение 1. Ц=[19/2]+1=10 сравниваем с ключом K10~K 17~16 » множество разделилось, идём в левую половину {2,4,5,6,8,10,12,14,16,} 2. Ц=[9/2]+1=5 K5~K 8~16 » вправо {10,12,14,16} 3. Ц=[4/2]+1=3 K3~K (на самом деле K8) 14~16 »вправо {16} 4. Ц=ключ остался один соответвенно Ц=1 K1~K (K9) 16~16 »ключ найден З.ы. ЭТО ТОЛЬКО ПРИМЕР ЗАДАЧИ НА АЛГОРИТМ! Кто может помочь в данном вопросе?:D И помочь с осуществлением скрипта, если честно то скриптов то много, но к сожалению они довольно часто высокого уровня и мудрённости + во многих присутствует команда процедуры (Procedure) которая меня уже достала, ибо с моим TP7.1 она всегда конфликтит, что-то не нравиться. З.з.ы если кто-то рискнёт помочь, отчёт не должен быть столь ясным, должен быть ввод чисел, ключа(кстати если его нет то соответсвенно ответ что ключа нет). просто вычисление чентра, сравнение ключа и в какую сторону множества переходим)) Всем спасибо за внимание. Сообщение отредактировано: Sardukar - |
![]() ![]() |
| volvo |
Сообщение
#2
|
|
Гость |
Цитата Чесгря, RTFM. Честно говоря, тебе бы тоже почитать азбуку не мешало... Я про то, что присваивать значения ТИПУ - это надо догадаться такое сделать... Это первое... Второе - мелочи, конечно, но ты ж тут начала посылать всех RTFM, так получаешь по полной - у тебя вызов BSearch с некорректным числом параметров (сказал А - говори и Б, для этого совсем не обязательно вводить новую переменную, достаточно передать собственно N)...Ну, и это - не самое главное... Самое главное - что BSearch будет искать правильно только в упорядоченном массиве. О чем ты успешно умолчал. Если знал, конечно |
| Гость |
Сообщение
#3
|
|
Гость |
В несортированном массиве метод бинарного поиска вообще работать не будет, т.к. это все равно, что тыкать пальцем в небо.
Т.е. с рандомайзом , конечно, погорячился. Если задан сортированный массив, то программу, конечно, надо будет переписать с заданием сортированного массива в разделе описания констант, например. Если исходный массив несортированный, то можно посмотреть топики, например, про бинарные деревья поиска. Идея бинарного поиска - в разбиении исходной последовательности для сокращения количества переборов. См. топики про быстрые сортировки. ПС. Исправить очевидные ошибки. ППС. Алгоритмы и реализации можно посмотреть в ФАКе. |
Sardukar Задача по методу бинарного поиска. 28.11.2007 2:11
Lapp Sardukar, не совсем понятно изъясняешься. Что ты … 28.11.2007 11:08
Sardukar Извиняюь если намудрил, всегда так выходит)
Для ме… 28.11.2007 13:12
Lapp Извиняюь если намудрил, всегда так выходит)Неплохо… 28.11.2007 15:28
Гость Я бы сказал, проблема в типах, а не в переменных..… 28.11.2007 13:19
Sardukar For Гость
мда, пару раз замечал что к данным 2 выр… 28.11.2007 18:33
Гость
type
DataItem = char;
DataArray = array … 28.11.2007 19:25
Гость <..>, как говорят наши американские братья. … 28.11.2007 19:28
Sardukar Спасибо за приведёный пример...постараюсь понять) … 28.11.2007 20:01
Sardukar Эмм.. по 1 пункту не понял по второму...тоесть ска… 28.11.2007 21:08
Гость
Эмм.. по 1 пункту не понял по второму...тоесть ск… 28.11.2007 21:35
Sardukar
program binPoisk;
uses crt;
const N=5;
var
i, p, … 1.12.2007 1:38
Sardukar Спасибо за помощь, но разобрался всё таки сам.
Зак… 13.12.2007 6:20![]() ![]() |
|
Текстовая версия | 6.11.2025 9:27 |