Рефераты. Анализ алгоритмов нечисленной обработки данных

Каждый элемент отсортированного массива располагается в четырёх позициях.

4 Инструкции по пользованию программой

4.1 Руководство пользователя

Программа, реализованная в соответствии с задачей, поставленной на курсовом проекте, написана на языке Turbo Pascal 7.0. Для запуска программы необходимо иметь компилятор Turbo Pascal 7.0. После запуска программы следует нажать комбинацию клавиш Ctrl+F9. В появившемся окне будет сообщение с просьбой ввести число элементов. Введите целое число n от 16 до 1024 элементов (можно и меньше 16), а затем нажмите клавишу Enter. Если введено n?16, то ввод элементов надо осуществить с клавиатуры, то есть вручную. Каждый вводимый элемент должен быть положительным и меньше 1000.

Если введено n>16, то программа сформирует массив самостоятельно при помощи датчика случайных чисел;

Дальше потребуется ввести элемент для поиска - x. Затем нажать Enter.

В дальнейшем программа автоматически выведет результаты поисков: линейного и двоичного. Результат включает в себя:

- для линейного поиска - количество сравнений;

- отсортированный массив, где все элементы расположены по возрастанию значений;

- для двоичного поиска - количество сравнений и перестановок, а также индекс искомого элемента;

Все результаты приведены в приложении Г.

4.2 Руководство программиста

Программа, представленная в данном курсовом проекте, разработана на языке высокого уровня - Turbo Pascal 7.0. Она состоит из основной программы и 7 подпрограмм (процедур).

Описания процедур приведены ниже.

4.2.1 Процедура VVod

Предназначена для формирования массива длиной до 1024 элементов. Процедура использует локальную переменную i для обращения к элементам массива. Входные параметры (в скобках указан способ передачи): n - длина массива (по значению), A - формируемый массив (по ссылке).

4.2.2 Процедура Vivod

Данная процедура выводит на экран сформированный массив, используя те же входные параметры, что и процедура VVod.

4.2.3 Процедура Save_To_File

Предназначена для записи во внешний текстовый файл сортируемый массив после заданного числа перестановок. Входные параметры: текстовый файл F(по ссылке), n - длина массива, a - записываемый сортируемый массив, m - количество перестановок.

4.2.4 Процедура Lin_Poisk

Эта процедура предназначена для поиска заданного элемента методом линейного поиска. Входные параметры: n - длина массива, a - исходный массив, x - заданный элемент. Локальные переменные: i - индекс элемента, счетчик, k - количество сравнений.

4.2.5 Процедура Dv_Poisk

Данная процедура реализует двоичный поиск. Входные параметры - те же, что и в процедуре Lin_Poisk. Локальные переменные: k - количество сравнений, ni - индекс нижней границы массива, vi - индекс верхней границы массива, sri - индекс среднего элемента массива.

4.2.6 Процедура Tree

Для построения дерева из исходного массива используется процедура Tree. Она формирует дерево b из массива a. Входные параметры: a - исходный массив (по значению), n - длина массива (по значению). Выходной параметр: b - двумерный массив (дерево). Локальные переменные: i,j - индексы элемента в дереве.

4.2.7 Процедура Tree_Sort

Сортирует дерево, полученное из исходного массива. Входные параметры: b - исходное дерево (по значению), n - длина массива (по значению). Выходной параметр: b1 - результирующий массив (отсортированное дерево). Локальные переменные: k - количество узлов в дереве, m - количество перестановок, i1 - индекс элемента в дереве (массиве).

4.3 Область и условия применения программы

В данной программе были разработаны алгоритмы нечисленной обработки данных - линейный и двоичный поиск, сортировка деревом. Сортировку деревом очень удобно использовать, когда необходимо сэкономить максимально возможно количество времени, но для представления дерева требуются большие затраты дополнительной памяти.

Программа является познавательной, её целесообразно использовать в качестве обучающего примера.

5 Анализ результата

На основе проведенных тестов программы был проведен анализ алгоритмов нечисленной обработки данных на примере массива длиной в 16, 128, 512, 1024 элементов.

5.1 Линейный поиск

Для проведения анализа линейного поиска в качестве заданного элемента были взяты числа, расположенные в начале, в середине, в конце и в произвольной позиции массива. Для линейного поиска теоретическое время поиска определяется по формуле Tтеор.=[время сравнения]ЧN/2

Результаты приведены в нижеследующей таблице.

Таблица 2. Результаты линейного поиска

Количество элементов массива

16

128

512

1024

Позиция элемента

Искомый элемент

Количество сравнений

Искомый элемент

Количество сравнений

Искомый элемент

Количество сравнений

Искомый элемент

Количество сравнений

Первая

5

1

0

1

48

1

0

1

Средняя

15

8

85

64

894

256

465

512

Последняя

3

16

314

128

191

512

242

1024

Произвольная

4

13

272

5

747

511

425

10

Элемент отсутствует

101

16

999

128

982

512

987

1024

Среднее значение

10,8

65,2

358,4

513,6

Теоретическое значение

8

64

256

512

По данным таблицы 2 построены графики функции зависимости времени поиска от количества элементов массива (рисунок 2).

Рисунок 1. График результатов линейного поиска

Вывод: Из рисунка 2 видно, что график линейного поиска имеет линейный характер. Теоретическое время незначительно отличается от практического, что означает правильность результатов выполнения линейного поиска.

Данный метод удобен для массивов с малой длиной, но использование его для больших массивов занимает много времени.

5.2 Двоичный поиск

Анализ двоичного поиска был проведен на примере числового одномерного массива длиной в 16, 128, 512, 1024 элементов. В качестве искомых элементов были взяты числа, расположенные в первой, средней, последней и произвольной позициях. Для двоичного поиска теоретическое время поиска определяется по формуле Tтеор.=[время сравнения]Ч log2N

Результаты приведены в таблице, которая приведена ниже.

Таблица 3. Результаты двоичного поиска

Количество элементов массива

16

128

512

1024

Позиция элемента

Искомый элемент

Количество сравнений

Искомый элемент

Количество сравнений

Искомый элемент

Количество сравнений

Искомый элемент

Количество сравнений

Первая

0

4

0

7

0

9

0

10

Средняя

13

1

310

1

156

1

491

1

Последняя

45

4

901

7

491

9

942

10

Произвольная

2

2

80

3

127

7

660

9

Элемент отсутствует

88

4

1001

7

1002

9

1003

10

Среднее количество сравнений

3

5

7

8

Теоретическое значение

4

7

9

10

Страницы: 1, 2, 3, 4, 5



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.