- •Понятие «сортировка». Устойчивость сортировки.
- •Задача сортировки.
- •Понятие «ключевое поле» в сортировке.
- •Понятие внутренней сортировки.
- •Понятие внешней сортировки.
- •Причины изучения алгоритмов сортировки.
- •Группы алгоритмов внутренней сортировки.
- •Основные идеи методов сортировок с помощью вставок.
- •2)Улучшение метода простых вставок:
- •Сортировка методом простых вставок.
- •Основные идеи методов сортировок с помощью выбора.-min эл.
- •Сортировка с помощью метода прямого выбора.
- •Основные идеи методов сортировки с помощью обмена.
- •Сортировка методом Шелла.
- •Быстрая сортировка.-разобрать
- •Понятие эффективности алгоритмов и программ.
- •Виды эффективности алгоритмов программ.
- •Порядок сложности алгоритма.
- •Понятие «доминирующая» функция, «асимптотически доминирующая» функция.
- •Правила определения сложности функции.
- •Доминирование функций друг над другом.-разобрать хрень!!!
- •Понятие алгоритма полиноминальной сложности.
- •Понятие алгоритма неполиноминальной сложности.
- •Вопрос 27.
- •Проблемы реализации np-сложных алгоритмов.
- •Вопрос 27.
- •Соответствие между скоростью выполнения алгоритма и его сложностью.
- •Анализ лучшего, худшего и среднего случаев поведения алгоритма.
- •31* Ограниченность о-анализа.
- •Пространственная сложность программы.
- •Взаимосвязь различных типов сложности.
- •Контрольные замеры.
- •Файлы. Их организация и обработка.
- •Стоимость операций с вторичной памятью.
- •Внешняя сортировка. Особенности внешней сортировки.
- •Понятие «серия», «слияние», «хвост», «фаза», «этап» в алгоритмах внешней сортировки.
- •38* Алгоритм 2-х фазной сортировки прямым слиянием.
- •Алгоритм однофазной сортировки прямым слиянием.
- •Алгоритм сортировки «естественным слиянием».
- •Ускорение сортировок прямым слиянием.
- •Задача поиска.
- •Классификация методов поиска.
- •Связь задач сортировки и поиска.
- •Последовательный поиск.
- •Быстрый последовательный поиск.
- •Последовательный поиск в упорядоченной таблице. Поиск путем сравнения ключей.-херня!
- •Бинарный поиск. Интерполяционный поиск.
- •Хеширование Выбор хеш-функций.
- •Хеширование. Разрешение коллизий.
Понятие эффективности алгоритмов и программ.
Алгори́тм — набор инструкций, описывающих порядок действий исполнителя для достижения результата решения задачи за конечное время
Эффективность программы (кода) является очень важной ее характеристикой. Пользователь всегда предпочитает более эффективное решение.
Проблема определения эффективности программы сводится к проблеме определения эффективности ее алгоритма. Как правило, для решения 1й и той же задачи можно построить алгоритмы различной сложности. Задачей прогера явл не кодирование 1го пришедшего в голову алгоритма, а нахождение и реализация такого алгоритма, кот сможет наиболее эффективно решить поставленную задачу.
Эффективность программы имеет 2 части:
память
время
Пространственная эффективность измеряется кол-вом памяти, требуемой для выполнения проги.
Если 2 проги исп. идентичные функции, то та прога, кот. исп. меньшее памяти х-ризуется большей пространственной эффективностью.
Временная эффективность проги определяется временем нужным для ее выполнения.
Время выполнения проги и занимаемое ее место часто зависимы и попытка сократить время работы приводит к увеличению объема памяти и наоборот.
Лучший способ сравнения эффективностей алгоритмов состоит в сопоставлении их порядков сложности.
Теория сложности занимается оценкой сложности разработки алгоритмов с т. зр. математики.
Порядок сложности алгоритма выражает его эффективность обычно через количество обрабатываемых данных.
Например, некоторый алгоритм может существенно зависеть от размера обрабатываемого массива. Если, скажем, время обработки удваивается с удвоением размера массива, то порядок временной сложности алгоритма определяется как размер массива.
Виды эффективности алгоритмов программ.
19й вопрос. Пространственная и временная.
Порядок сложности алгоритма.
19й вопрос.(его конец). Порядок сложн. алг. – это функция, доминирующая над точным выражением временной сложности. Ф-ция G(x) доминирует над F(x), если сущ. константа С такая, что С * G(x) > F(x) для всех возможных значений х.
При анализе сложности исп. частный случай доминирования – асимптотическое доминирование.
Понятие «доминирующая» функция, «асимптотически доминирующая» функция.
Порядок сложн. алг. – это функция, доминирующая над точным выражением временной сложности. Ф-ция G(x) доминирует над F(x), если сущ. константа С такая, что С * G(x) > F(x) для всех возможных значений х.
При анализе сложности исп. частный случай доминирования – асимптотическое доминирование.
Ф-ция G(x) – асимптотически доминирует над F(x), если G(x) доминирует над F(x) для всех больших значений х.
С инета:
Порядок алгоритма - это функция, доминирующая над точным выражением временной сложности.
Функция f(n) имеет порядок O(g(n)), если имеется константа К и счетчик n0, такие, что f(n)(K*g(n), для n>n0.
Например:
Известно, что точное время обработки массива Действительное время(Длина массива)= Длина массива2+5*Длина массива+100;
|
Вспомогательная функция: Оценка времени(Длина массива)=1,1* Длина массива2
Как видно из рисунка вспомогательная функция доминирует над точной, кроме того вспомогательная функция проще и близка к точной на столько на сколько это возможно.
// поряд. вр (n) = n2, т. е порядок времени(длина массива)=длина массива2.
//Порядок времени - порядок сложности для функции время.
Порядок сложн. алгоритма обработки массива будет O(Длина массива2) или O(N2).
O-функции выражают относительную скорость алгоритма в зависимости от некоторой переменной (или переменных).
О - обозначения.
Часто для выявления порядка сложности алгоритма исп. обозначение в виде О. В этом обозначении порядок сложности функции заключается в скобки следующей за О.
время (n) = O (порядок вр. (n))
n2 + 5n + 100 = O(n2)
О- функции выражают относительную скорость алгоритма в зависимости от некоторой переменной или переменных.
Скорость работы алгоритма O(N) – падает пропорционально росту n.
Точное время выполнения алг. не м.б. определено т. исходя из соответствующей О функции. 2 алг. со сложностью О(n) м. требовать разное время для 1 значения n.
О - анализ.
Думаю, что эт 22 вопрос.. можно туда зафигачить 23й и 25