- •Алгоритмы Конечные автоматы
- •НДКА
- •НДКА
- •НДКА
- •НДКА
- •НДКА
- •Алгоритмы Конечные автоматы
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Алгоритмы
- •Переход от НДКА к ДКА Пр.
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Переход от НДКА к ДКА
- •Рекурсивные функции
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Рекурсивные функции
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Cложность вычислений.
- •Cложность вычислений.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений. Асимптотические оценки.
- •Cложность вычислений.
- •Cложность вычислений.
- •Cложность вычислений.
- •Cложность вычислений.
- •Оценка асмптотической временной сложности
- •Cложность вычислений.
- •сложность алгоритмов
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Алгоритмы
- •Выводы по алгоритмам
- •Выводы по алгоритмам
- •Жадные алгоритмы
- •Жадные алгоритмы
- •Жадные алгоритмы
- •Жадные алгоритмы
- •Жадные алгоритмы
сложность алгоритмов
Алгоритмы
Хэш - таблицы Вы продавец магаина
стоимость товара неупорядочена
электронный брелок |
10 |
принтер |
300 |
сканер |
180 |
тогда быстрота такого поиска будет O( n) если же стоимость упорядочена
электронный брелок |
10 |
сканер |
180 |
принтер |
300 |
Алгоритмы
То можно воспользоваться бинарным поиском и время которого займет O(log n)
Составим таблицу
количество |
О ( n ) |
O( log n ) |
|
записей в |
|
|
|
книге |
|
|
|
100 |
10 c |
1 c |
|
1000 |
1,66 мин |
строк |
|
1 с( |
строк |
||
10000 |
16, 6 мин |
2 с( |
строк |
|
|
||
Алгоритмы
Однако можно сделать еще быстрее если есть специальная программа которая мгновенно отвечает на данные вопросы за время O(1)
Реализуем данные ввиде массива
принтер, 300 скаанер, 180 электрон. брелок , 10
каждый элемент массива имеет
название товара
цену товара
Алгоритмы
Используем хэш-функцию
Хэш-функция представляет собой функцию, которая преобразовает строки в числа
Напр .
слово товара шнур электрический имеет число 3
Разным словам товара соответствют разные числа
Выводы по алгоритмам
Быстрыми являются линейные алгоритмы, которые обладают сложностью O(n) , где n - размерность входных данных.
Напр. алгоритм нахождения суммы десятичных чисел
Т.е. алгоритмы O(n) еще называтся алгоритмы линейной сложности (т.е. для каждого входного объекта выполняется только одно действие
Полиномиальные алгоритмы (или алгоритмы принадлежащие классу P) называются алгоритмы у которых временная сложность O( ) , гле k - целое положительное число.
Выводы по алгоритмам
Примером алгоритма O( ) является напр. алгоритм Дейкстры (нахохождение кратчайших путей на графе)
Тогда в таких алгоритмах всякий раз когда n удваивается, время выполнения такого алгоритма увеличивается на множитель 4.
Алгоритмы же O( ) -называют кубическими. Такие алгоритмы более медленные , чем O(). Т.е. тогда в таких алгоритмах всякий раз когда n удваивается , время выполнения алгоритма увеличивается в 8 раз.
Экспоненциальные (труднорешаемые ) алгоритмы.
Экспонинциальные алгоритмы(класс Е) -труднорешаемые задачи
Жадные алгоритмы
Жадные алгоритмы
Напр. Есть расписание
физвоспитани |
9:00 |
11;00 |
е |
|
|
физика |
9:30 |
11:30 |
теор вер |
11:00 |
13:00 |
математика |
11:30 |
13;30 |
программирова |
13:00 |
15:00 |
ние |
|
|
Провести все занятия не получиться , т.к. они перекрываются по времени
Жадные алгоритмы
1. Выбираем занятие которое заканчивается раньше других . Это будет первое занятие
В данном случае - это физвоспитание
физвоспитани |
9:00 |
11:00 |
е |
|
|
теор вер |
11:00 |
13:00 |
программирова |
13:00 |
15:00 |
ние |
|
|
2. Затем выбираем занятие которое начинается после завершения 1 занятия и завершается раньше остальных предметов.В данном случае - это теор вер.
Поэтому 2 занятие - ставим теор вер
Жадные алгоритмы
Аналогично находим третий предмет- программирование
Т.о. жадные алгоритмы выбирают на каждом шаге - оптимальный вариант. (в данном примере - по принципу : выбирается занятие , которое завершается раньше других)
Такое решение выбора наз : локально- оптимальное решение
а в итоге получаем :глобально- оптимальное решение
