Similar presentations:
Языки программирования
1.
Кафедра компьютерной безопасностиЯЗЫКИ
ПРОГРАММИРОВАНИЯ
СКБ22*
Москва, 2022
2.
ЗАЧЕМ НУЖНЫ АЛГОРИТМЫ?1. Эффективное решение задач (скорость, память)
2. Дополнительная готовность к собеседованию
3. Тренируем мозг
4. Формирует у программистов одни базовые
понятия
Москва, 2022
3.
ЛИНЕЙНЫЙ ПОИСКДан массив целых чисел длины N. Нужно найти в
данном массиве заданное число x и вернуть его
индекс. Если элемента в массиве нет — вернуть -1
Москва, 2022
4.
Москва, 2022Сколько элементов массива будет
рассмотрено в этом алгоритме?
5.
Москва, 2022Сколько элементов будет рассмотрено
в худшем случае?
6.
Москва, 2022Вычислительная сложность алгоритма
линейно зависит от размера входных
данных.
7.
Москва, 2022Дан массив целых чисел длины N. Нужно найти в
данном массиве заданное число x и вернуть его
индекс. Если элемента в массиве нет — вернуть -1
8.
Москва, 2022Вычислительная сложность алгоритма
Размер входных данных
Линейная зависимость
9.
БИНАРНЫЙ ПОИСКДан массив целых чисел длины N. Нужно найти в
данном массиве заданное число x и вернуть его
индекс. Если элемента в массиве нет — вернуть -1
Москва, 2022
10.
СЛОЖНОСТЬ АЛГОРИТМА, О БОЛЬШОЕ, О-НОТАЦИЯМосква, 2022
11.
АСИМПТОТИЧЕСКАЯСЛОЖНОСТЬ
O(1) — константная зависимость
O(n) — линейная зависимость
O(log n) — логарифмическая зависимость
O(n^2) — квадратичная зависимость
O(n^3) — кубическая зависимость
O(2^n) — экспоненциальная зависимость
Москва, 2022
12.
ОЦЕНКА СЛОЖНОСТИМосква, 2022
13.
ОЦЕНКА СЛОЖНОСТИМосква, 2022
14.
ОЦЕНКА СЛОЖНОСТИМосква, 2022
15.
ОЦЕНКА СЛОЖНОСТИМосква, 2022
16.
АЛГОРИТМ КАК ПИСАТЬ АЛГОРИТМ1. Слушайте (читайте)
2. Представьте пример
3. Придумайте наивное решение
4. Оптимизируйте
5. Проведите пошаговый разбор
6. Напишите код
7. Тестируйте
Москва, 2022
17.
КАК ПРИДУМЫВАТЬ ПРИМЕРЫ1. Общий случай
2. Граничные значения (мин, макс)
Москва, 2022
18.
ИЗМЕРИТЬ ВРЕМЯ ВЫПОЛНЕНИЯ ПРОГРАММЫМосква, 2022