![]() |
|
сделать стартовой | добавить в избранное |
![]() |
Анализ алгоритмов нечисленной обработки данных |
Аннотация Данный курсовой проект посвящен рассмотрению и изучению алгоритмов нечисленной обработки данных – линейный и двоичный поиск, а также упорядочение массива методом сортировки деревом. Алгоритмы реализованы на языке urbo Pascal 7.0. Содержание1 Постановка задачи 2 Метод решения 2.1 Сортировка двоичным деревом 2.1.1 Организация массива в виде двоичного дерева 2.1.2 Простейший способ 2.1.3 Описание построения дерева 2.1.4 Описание сортировки деревом 2.2 Линейный поиск 2.3 Двоичный поиск 2.4 Метод оценки времени поиска 3 Алгоритмизация задачи 3.1 Ввод и вывод массива 3.2 Линейный поиск 3.3 Построение двоичного дерева 3.4 Сортировка двоичным деревом 3.5 Двоичный поиск 3.6 Запись в файл 4 Инструкции по пользованию программой 4.1 Руководство пользователя 4.2 Руководство программиста 4.2.2 Процедура Vivod 4.2.3 Процедура Save o File 4.2.4 Процедура Li Poisk 4.2.5 Процедура Dv Poisk 4.2.6 Процедура ree 4.2.7 Процедура ree Sor 4.3 Область и условия применения программы 5 Анализ результата 5.1 Линейный поиск 5.2 Двоичный поиск 5.3 Анализ сортировки деревом Заключение Список литературы Приложение А Приложение Б 1 Постановка задачи Необходимо: 1) Создать набор входных данных длиной 16, 128, 512, 1024 элементов для программ поиска и сортировки. Для массива длиной, не превышающей 16 элементов, предусмотреть ввод элементов с клавиатуры, в остальных случаях – генератором случайных чисел. 2) Разработать алгоритм и программу упорядочения методом минимальной по памяти турнирной сортировки. 3) Разработать алгоритм и программу поиска заданного элемента в неупорядоченных массивах. Метод линейного и двоичного поиска. 4) Осуществить отладку программы на тестовых примерах. 5) Оценить время сортировки и поиска информации для массивов заданной длины. Требования к программе: 1) основные алгоритмы оформить в виде подпрограмм; 2) программа должна быть самодокументированной; Обеспечить формирование массива: 1) путем ввода элементов с клавиатуры при ≤16; 2) с помощью генератора случайных чисел при &g ;16; 2 Метод решения 2.1 Сортировка двоичным деревом 2.1.1 Организация массива в виде двоичного дерева Чтобы облегчить поиск в массиве элемента с нужным значением признака, не обязательно упорядочивать его по этому признаку в линейную последовательность. Двоичным называется ориентированное дерево, у которого в каждую вершину, кроме одной, корня дерева, заходит одна дуга и из каждой вершины исходит не более двух дуг. Ветвью дерева называют поддерево, состоящее из некоторой дуги данного дерева, ее начальной и конечной вершин, а также всех вершин и дуг, лежащих на всех путях, выходящих из конечной вершины этой дуги. 2.1.2 Простейший способ Сначала рассматривается весьма простой метод построения дерева, организующего массив. При этом методе, в известном смысле, отдаются на волю случая. Как будет видно, можно все же получить хорошие результаты, если в исходном состоянии массива значения признака, взятые в порядке возрастания номеров элементов, образуют хорошо перемешанную последовательность. Первый элемент массива поместим в корень дерева. Со вторым элементом поступают так.
Сравнивают значение p2 признака этого элемента со значением p1 признака элемента, помещенного в корень дерева (т.е первого элемента). Если p2&l ;p1, то к корню пририсовывают дугу, направленную влево, и помещают второй элемент в конце этой дуги. Если же p2≥p1, то делают то же самое, но дугу направляют вправо. В общем случае, когда требуется выбрать место на дереве для i-го элемента массива (к этому моменту дерево уже содержит i- 1 вершину и i-2 дуги), поступают следующим образом. В процессе выбора просматривается некоторый путь по дереву (цепочка смежных неповторяющихся вершин и дуг), выходящий всегда из корня. Чтобы, находясь в некоторой вершине пути, определить, обрывается ли путь в этой вершине, а если нет, то какая вершина следующая, применяется один и тот же прием для каждой вершины, в том числе и для корня. Сравнивается значение pi признака размещаемого элемента со значением pk признака элемента, помещенного в данной вершине. Если pi &l ;pk , то смотрят, исходит ли из этой вершины дуга влево. Если исходит, то вершина в конце этой дуги будет следующей вершиной пути, если нет, то достраивают эту дугу и помещают i-й элемент в ее конце. Если же pi ≥ pk , то все происходит аналогично, но с дугой, направленной вправо. Таким образом, из каждой вершины может исходить самое большее две дуги, как и полагается для двоичного дерева. Метод организации массива в виде двоичного дерева требует несколько больших затрат как на организацию массива, так и на поиск в нем нужного элемента, чем это минимально необходимо. Впрочем, это увеличение не столь существенно. Этот метод оптимален по порядку роста трудоемкости поиска в зависимости от размера массива. Это означает, что для данного метода, так же как и для оптимального, эта зависимость имеет вид c∙log (с точностью до величин меньшего порядка роста) и разница заключается лишь в значении коэффициента пропорциональности c. 2.1.3 Описание построения дерева Пусть каждый элемент исходного массива a состоит из двух полей: признака a, где i – номер элемента в исходном массиве. Чтобы описать массив, упорядоченный в виде дерева, каждый элемент надо снабдить ещё, по меньшей мере двумя полями, содержащими номера элементов, расположенных в конце левой и правой дуг, исходящих из вершины, в которую помещён данный элемент. Этих двух дополнительных полей достаточно для построения дерева и для поиска в нем. Однако для других операций с деревом желательно иметь ещё одно поле, содержащее номер того элемента, к которому подвешен (безразлично, слева или справа) данный элемент. Пусть исходный массив уже содержит все необходимые поля, то есть, описан как mas=array of i eger, но значения дополнительных полей a перед началом работы алгоритма не определены. Называются эти поля соответственно левым, правым и обратным указателем. Если после окончания работы алгоритма левый (правый) указатель какого-либо элемента содержит нуль, это означает, что из вершины, в которую помещён данный элемент, не исходит левая (правая) дуга. Обратный указатель содержит нуль только для первого элемента, который помещён в корне дерева.
Остальные детали процедуры ясны из приведённого в начале этого раздела словесного описания алгоритма. 2.1.4 Описание сортировки деревом Имеются два массива: a – исходный и b – отсортированный. В массиве b элементы массива a расположены в порядке возрастания значения признака. Если у элемента есть левая ветвь, то элемент с наименьшим значением признака разыскивается на этой ветви. Если у элемента левой ветви нет, то он переносится в массив b, так как в массиве нет элемента с меньшим значением признака. После этого очередной элемент разыскивается в правой ветви, если она есть, или возвращается по обратному указателю. После возвращения к какому-либо элементу по левой или правой ветви дальнейшие действия идут так, как будто у этого элемента соответствующей ветви нет. 2.2 Линейный поиск Для неупорядоченного исходного массива единственным способом нахождения заданного элемента в этом массиве является линейный поиск. Этот метод состоит в последовательном сравнении каждого элемента массива с заданным для поиска элементом. При линейном поиске иногда просматривается половина, а то и больше элементов исходного массива. Этот метод удобен и прост для массивов с меньшей длиной. Для массивов большей длины это метод вызывает затруднения, так как время поиска будет очень медленным. Применим метод линейного поиска на примере поиска в неупорядоченном массиве A элемента X=11. Дан массив A, который состоит из 10 элементов. Таблица 1 – Линейный поиск № Элемента Сравнение № Проверки 1 511 1 2 12& e;11 2 3 68& e;11 3 4 0& e;11 4 5 92& e;11 5 6 87& e;11 6 7 7& e;11 7 8 32& e;11 8 9 11=11 9 10 24 Из таблицы 1 видно, что для нахождения элемента X=11 пришлось выполнить 9 сравнений. Если бы элемента 11 не оказалось под номером 9, то поиск выполнялся бы до его нахождения, либо до окончания массива. 2.3 Двоичный поиск Одним из эффективных методов поиска в больших отсортированных массивах является двоичный, другое название бинарный, поиск. Так называемый, поиск методом деления пополам. Вместо просмотра подряд всех элементов массива делим его пополам. Так как массив отсортирован, то, сравнивая искомый элемент со значением среднего элемента массива, можно сделать вывод, о том, что может ли быть элемент с таким значением в массиве и в какой половине он находиться, то есть, определить область дальнейшего поиска. Затем делится пополам та часть массива, в которой находится элемент, и так до тех пор, пока рассматриваемая часть массива получится состоящей из одного элемента. Допустим, есть упорядоченный по возрастанию массив из целых чисел. Необходимо определить, содержит ли этот массив некоторое число (образец). Алгоритм двоичного поиска: 1. Сначала образец сравнивается со средним (по номеру) элементом массива - если образец равен среднему элементу, то задача решена; - если образец больше среднего элемента, то это значит, что искомый элемент расположен, ниже среднего элемента (между элементами с номерами sre 1), и за новое значение verhe принимается sre i, а значение ize не меняется; - если образец меньше среднего элемента, то это значит, что искомый элемент расположен выше среднего элемента (между элементами с номерами verhe и sre-1), и за новое значение ize принимается sre-1, а значение verhe не меняется.
Теория эмоций информационная разработана в 1964 г. П. В. Симоновым на основе психофизиологических экспериментов. В 1984 г. Д. Прайс и Дж. Баррелл в результате количественной обработки данных психологических опытов подтвердили существование зависимости, которую назвали общим законом человеческих эмоций. Теория эмоций информационная позволяет использовать регистрируемые правления эмоций мимику, голос, изменения физиологических функций и активности электрической мозга как индикаторы потребности субъекта и степени их удовлетворения, уточнить классификацию этих потребностей, процесс их формирования и взаимодействия. Анализ многообразных эмоций с позиций этой теории привел к выводу о существовании трех основных групп потребностей витальных, социальных, идеальных (познания и творчества) и двух вспомогательных потребности в компетентности (вооруженности знаниями и умениями) и потребности в преодолении препятствий на пути к цели (именуемой обычно волей). Среди социальных различаются потребности «для себя», осознаваемые субъектом как права, и потребности «для других», осознаваемые в качестве обязанностей
2. Организация и применение микропроцессорных систем обработки данных и управления
3. Алгоритм создания базы данных складского учета
4. Обработка данных о студентах
5. Выставка: последующая обработка данных
9. Программа обработки данных в библиотеке
10. Особенности использования сетевых технологий для обработки данных
12. Обработка данных методом преломленных волн
13. Алгоритмы и структуры данных. Программирование в Cи
14. Обработка данных в автоматизированных системах
15. Параллелизм как способ параллельной обработки данных
16. Создание формул для обработки данных в электронной таблице Excel
17. Вычислительная система обработки данных в реальном времени
18. Блочно-симметричные модели и методы проектирования систем обработки данных
19. Анализ технологического процесса обработки резанием ступенчатых валов
20. Анализ алгоритма работы специализированного вычислителя
21. Анализ пакетов обработки экспериментальных данных SABR и BOOTSTRAP
26. Применение алгоритма RSA для шифрования потоков данных
27. Статистическая обработка экспериментальных данных
28. Алгоритм анализа финансовой устойчивости предприятия
29. Технический анализ и его применение на примере данных полученных с Московской фондовой биржи
30. Структуры данных и алгоритмы
31. Спектральный анализ и его приложения к обработке сигналов в реальном времени
33. Программная система обработки и анализа изображений
36. Простейшие способы обработки опытных данных
37. Алгоритм ситуационного анализа для разрешения конфликтных ситуаций
43. Системы оперативного анализа данных OLAP
44. Создание и обработка базы данных телефонов, произведенных в разных странах
45. Шифрование и дешифрование данных при помощи симметричных криптографических алгоритмов
46. Разработка канала обработки и сбора данных
47. Анализ системы управления персоналом на ЗАО "Вимм Билль Данн Йошкар-Ола"
49. Методы обработки статистических данных
50. Анализ финансового состояния предприятия на примере ОАО "Вимм-Билль-Данн"
51. Методика обработки экспериментальных данных
52. Группировка и анализ данных
53. Способы обработки экономической информации в анализе
57. Разработка алгоритмов контроля и диагностики системы управления ориентацией космического аппарата
59. How "DNA" testing works Анализ "ДНК" как проверяющие работы)
60. Анализ повадок отряда ДЯТЛООБРАЗНЫЕ - Piciformes семейства ДЯТЛОВЫЕ – Picidae
61. Социально-политический анализ Военной доктрины Российской Федерации
63. Дания
65. Статистический анализ демографической ситуации в Российской Федерации
66. Экономическая система Дании
67. Комплексный анализ современных ландшафтов и их эволюции на территории Катангского плато
68. Анализ доходов бюджета Российской Федерации
69. Безработица в России /данные на 1992г/
73. Анализ Конституции США и ее сравнение с Конституцией РФ 1993 года
74. Правительство в Российской Федерации и зарубежных странах. Сравнительный анализ
75. Сравнительный анализ конституции России и США
77. Анализ пенсионногозаконодательства Украины и других стран
79. Местное самоуправление в Украине (историко-правовой анализ)
80. Системы органов государственной власти субъектов РФ и штатов Индии (сравнительный анализ)
81. Способы формирования муниципальной собственности: правовое регулирование и сравнительный анализ
82. Анализ Закона РФ N1992-1 "О налоге на добавленную стоимость"
83. Обзор и анализ проекта Налогового кодекса Российской Федерации
84. Анализ налоговой системы России. Некоторые аспекты
90. Лексико-семантический анализ современных англоязычных рекламных слоганов
91. Сравнительный анализ отечественной и зарубежной системы книгораспространения
92. Анализ живописных произведений флорентийской школы конца XV - начала XVI веков
93. Метод действенного анализа в режиссуре театра, кино и телевидения
94. Художественная обработка материалов животного происхождения в Приамурье
95. Сравнительный анализ культуры Средневековья и Возрождения