- •1.Основные понятия эис
- •19. Классификация алгоритмов
- •Классификация Алгоритмов
- •20. Абстрактные типы данных (массивы, связанные списки, выделение памяти)
- •Абстрактные типы данных
- •Элементарные Структуры Данных
- •Массивы
- •Связанные списки
- •Выделение Памяти
- •21. Стеки, очереди, деревья
- •Очереди
- •Деревья
- •Терминология
- •22. Математические характеристики деревьев
- •Свойства
- •23. Обход деревьев
- •Обход Деревьев
- •Алгоритм быстрой сортировки
- •1 2 3 4 5 6 7
- •25. Критерии эффективности алгоритмов (формирование, поиск последовательного масиива)
- •26. Критерии эффективности алгоритма ступенчетого поиска
- •27. Сортировка методом Шелла Сортировка Шелла
- •28. Сортировка простым включением
- •29. Приоритетные очереди
- •30. Радикс сортировка Радикс Сортировка
- •Сортировка Радикс Обменом
- •Прямая Радикс Сортировка
- •Свойства Радикс Сортировок
- •31. Рекурсия Рекурсивные определения
- •Рекурсивные процедуры
- •Итерация и рекурсия
- •32. Рекурсивный обход деревьев, удаление рекурсии Рекурсивный Обход Дерева
- •Удаление Рекурсии
- •33. Элементарные методы сортировки и их характеристики Элементарные Методы Сортировки
- •Правила Игры
- •Сортировка Выбором
- •Сортировка Вставкой
- •34. Простейшие алгоритмы сортировки (методом пузырька, сортировка выбором, шейкер сортировка, ростировка Шелла), сравнение простых методов сортировки. Пузырьковая Сортировка
- •Характеристики Простейших Сортировок
- •Сортировка Файлов с Большими Записями
- •Сортировка Шелла
- •Подсчет Распределения
- •35. Алгоритмы быстрой сортировки, разрядная сортировка Алгоритм быстрой сортировки
- •1 2 3 4 5 6 7
- •36. Пирамидальная сортировка Пирамидальная сортировка
- •37. Сортировка слиянием (простое слияние, двухпутевое слияние, рекурсивный алгоритм слияния) Сортировка слиянием
- •Простое слияние
- •Y 1 2 3 4 5 6 7 8
- •Естественное двухпутевое слияние
- •Рекурсивный алгоритм слияния
Алгоритмы и структуры данных
1.Основные понятия эис
2.свойства едениц инф., атрибуты
3.составные еденицы инф. СЕИ
4.показатели
5.основные понятие реляционной алгебры
6.основные операции рел.алгебры
7.функ-ные зависимотсти и ключи
8.нормализация отношений
9.ациклическая БД
10. алгоритм проверки БД на ацикличности
11. востановление ацекличности БД
12. сетевая и иерархическая модели данных
13. правила концевого прохождения
14. сравнительный анализ сетевой и иерархической модели
15. структуры хранения данных и методы доступа
16. индексирование
17. использование при икдексировании структур типа бинарного дерева
18. анализ алгоритмов
Анализ алгоритмов
Анализ алгоритмов означает измерение и описание их характеристик. Понимание насколько хорошо работает алгоритм, показывает, будет ли алгоритм практичен, будут ли достаточны предоставляемые ресурсы. Более того, анализ алгоритмов представляет основу для сравнения различных алгоритмических решений одной и той же задачи, ранжирование их по характеристикам и выявление, какие из них наиболее эффективны.
При анализе алгоритмов обычно наибольшее внимание уделяется необходимому объему памяти и затратам времени на выполнение алгоритма. Очень часто время является самым критичным ресурсом. Объем требуемой памяти в общем случае менее критичен, чем время. Многие алгоритмы, используемые на практике, используют объем памяти пропорциональный размеру входных данных, так что если имеется достаточно памяти, чтобы загрузить задачу, то обычно ее хватает и на решение.
Обычно решаемая задача имеет естественный «размер» (обычно количество обрабатываемых ею данных), которое мы называем N. В конечном итоге нам бы хотелось получить выражение для времени, необходимого программе для обработки данных размераN, как функцию отN. В идеале, нужно вывести время работы алгоритма для любого распределения входных данных. Однако данная задача не разрешима для нетривиальных алгоритмов. Некоторые алгоритмы хорошо изучены в том смысле, что известны точные математические формулы для среднего и худшего случаев. Под средним случаем мы понимаем ожидаемое время работы программы на «типичных» входных данных, а под худшим – ожидаемое время работы программы на самых плохих входных данных. Такие формулы разрабатываются посредством тщательного изучения программ с целью нахождения времени работы в терминах математических характеристик, и затем производя их математический анализ.
Таким образом, первый шаг анализа – выбор вариантов распределения данных, для которых будет проводиться анализ.
Второй шаг в анализе алгоритма это выделить абстрактные операции, из которых состоит алгоритм, чтобы отделить анализ от реализации. Таким образом, мы отделяем, например, вопрос о том, сколько операций сравнения потребуется алгоритму от вопроса о том, сколько времени это сравнение займет на конкретном компьютере. Для того, чтобы выяснить сколько реально потребуется времени алгоритму нам будет необходимо знать оба эти параметра. Первый определяется свойствами алгоритма, второй – свойствами компьютера. Такое разделение помогает производить анализ алгоритма в независимости от его конкретной реализации или компьютера.
Третий шаг это произвести сам математический анализ, базируясь на операциях, которые мы только что определили.