Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1курс / 2 сем / МЛиТА / лекции (сборник през / МАТ_ЛОГИКА_ЛЕК_7—_копия_—_копия_—_копия_—_копия_—_копия_—_копия.pptx
Скачиваний:
7
Добавлен:
09.07.2024
Размер:
2.87 Mб
Скачать

сложность алгоритмов

Алгоритмы

Хэш - таблицы Вы продавец магаина

стоимость товара неупорядочена

электронный брелок

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 занятие - ставим теор вер

Жадные алгоритмы

Аналогично находим третий предмет- программирование

Т.о. жадные алгоритмы выбирают на каждом шаге - оптимальный вариант. (в данном примере - по принципу : выбирается занятие , которое завершается раньше других)

Такое решение выбора наз : локально- оптимальное решение

а в итоге получаем :глобально- оптимальное решение