Фибоначчиев поиск

Алгоритм предназначен для поиска аргумента K в таблице значений R1,R2,...,Rn, расположеных в порядке возрастания ключей: K1<K2<...<Kn.

Для удобства описания предполагается, что N+1 есть число Фибоначчи Fk+1. Подходящей начальной установкой данный метод можно сделать пригодным для любого N

1. [Начальная установка]. Установить i <=Fk, p<=Fk-1, q <= Fk-2. (В этом алгоритме p и q обозначают последовательные числа Фибоначчи.)

2. [Сравнение]. Если K<Ki, то перейти на F3; если K>Ki, то перейти на F4; если K=Ki, алгоритм заканчивается удачно.

3. [Уменьшение i ]. Если q=0, то алгоритм заканчивается неудачно. Если q<>0,то установить i<= i-q, заменить (p,q) на (q,p-q) и вернуться на F2.

4. [Уменьшение i ]. Если p=1, то алгоритм заканчивается неудачно. Если p<>1,то установить i<= i+q, p<=p-q, q<=q-p и вернуться на F2.

Задание к работе:

1. Составить блок-схему и программу на языке Borland Pascal, которая:

- формирует на магнитном диске файл целых, вещественных, строковых переменных или текстовый файл (по указанию преподавателя). Количество элементов файла ввести по запросу;

- осуществить сортировку по возрастанию и убыванию элементов файла в памяти, создав два соответствующих массива. Результаты сортировки выдать на монитор;

- осуществить выбор n-го минимума и m-го максимума, используя два метода (первый для поиска n-го минимума, второй - m-го максимума)

- используя неотсортированный массив и метод последовательного поиска, осуществить поиск элемента с заданным значением. Оценить затраты времени;

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

Необходимо учесть, что сортировка предназначена для проверки методов выбора и поиска.

Значения n и m запросить с клавиатуры.

2. Программу оформить в виде меню, примерные опции которого следующие: формирование файла, индикация содержимого файла (поэкранно), сортировка, вывод отсортированного массива на экран, выбор m-го максимума и n-го минимума, поиск I и II методами.

3. Во время работы по сортировке необходимо индицировать на экране время, затраченное на каждый из методов. Предпочтительней использование динамических переменных.

4. Программу оформить в соответствии с требованиями: комментарии (заглавный и строчные), модульный принцип (все - в виде процедур и функций). Пользование модулями - без ограничений.

Содержание отчета: титульный лист, тема и цель работы, № варианта задания и собственно задание, постановка задачи поиска и выбора, методы выбора и поиска, блок-схемы алгоритмов (по указанию преподавателя), текст программы, результаты работы программы, выводы.

Контрольные вопросы.

1. Постановка задач поиска и выбора.

2. Какими методами осуществляется поиск в отсортированном и неотсортированном массиве?

3. Какие ограничения накладываются на условия выбора?

4. Правила оформления и назначение модуля в Borland Pascal?

5. Комментарии и их назначение.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: