Структуры и алгоритмы обработки данных
Сложность алгоритма
Сложность алгоритма
Оценка качества алгоритма
Оценка качества алгоритма
Оценка качества алгоритма
Оценка качества алгоритма
Сложность алгоритма
Выбор алгоритма
Задачи и многообразие алгоритмов их решения
Задачи и многообразие алгоритмов их решения
Задачи и многообразие алгоритмов их решения
Задачи и многообразие алгоритмов их решения
Задачи и многообразие алгоритмов их решения
Задачи и многообразие алгоритмов их решения
Проблема выбора алгоритма. Понятие временной сложности
Проблема выбора алгоритма. Понятие временной сложности
Проблема выбора алгоритма. Понятие временной сложности
Проблема выбора алгоритма. Понятие временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Время выполнения алгоритмов
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Асимптотические соотношения оценки временной сложности
Сравнительная оценка сложности алгоритмов
Асимптотические соотношения оценки временной сложности
Вычисление временной сложности
Некоторые операции с символом О
Сравнительная оценка сложности алгоритмов
Сравнительная оценка сложности алгоритмов
Временная сложность алгоритмов
1.65M
Category: programmingprogramming

Анализ алгоритмов и их сложности

1. Структуры и алгоритмы обработки данных

Лекция 5
Анализ алгоритмов и
их сложности

2. Сложность алгоритма

Для практики недостаточно знать, что задача
алгоритмически разрешима
Т. к. ресурсы ЭВМ (оперативная память и время
процессора) ограничены, следует выбирать из
эквивалентных алгоритмов наиболее
эффективный
Для оценки качества введено понятие
сложности или обратное понятие —
эффективность алгоритма

3. Сложность алгоритма

Оценка сложности зависит от:
♦ времени, затраченного на выполнение
алгоритма
♦ объема памяти, требуемой для хранения
исходных данных задачи

4. Оценка качества алгоритма

5. Оценка качества алгоритма

Сложность алгоритма
Временная
Емкостная
- характеризует временные
затраты на реализацию
алгоритма
- характеризует затраты
памяти на реализацию
алгоритма

6. Оценка качества алгоритма

Сложность алгоритма
Практическая
Теоретическая

7. Оценка качества алгоритма

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

8. Сложность алгоритма

выбранный язык
программирования
выбранный
математический
метод
формулирования
задачи
быстродействие
компьютера и его
емкостные ресурсы
искусство и опыт
программиста
Сложность

9. Выбор алгоритма

Какой из множества алгоритмов выбрать
для решения конкретной задачи?
Алгоритм
Как оценить эффективность программы?
Эффективность
программы
Лучший способ сравнения
эффективностей алгоритмов сопоставление их порядков сложности;
применим к временной и
пространственной сложности
память
время

10. Задачи и многообразие алгоритмов их решения

Для большинства
задач существует
более одного способа
их решения
Можно
сформулировать
несколько
алгоритмов,
приводящих к одному
и тому же результату
Пример: задача
возведения в степень

11. Задачи и многообразие алгоритмов их решения

Задача возведения в степень
Дано число x и натуральное (целое неотрицательное) число n ≥ 0.
Вычислить значение функции f(x) = хn
Очевидный способ решения:
x n x x ... x
n раз
f(x) = хn

12. Задачи и многообразие алгоритмов их решения

Задача возведения в степень
Дано число x и натуральное (целое неотрицательное) число n ≥ 0.
Вычислить значение функции f(x) = хn
x x ... x x x x ... x , если n нечетное
n div 2 раз
n div 2 раз
n
x x x ... x
n раз
x x ... x x x ... x , если n четное
n div 2 раз n div 2 раз
div - операция целочисленного деления
1, если n 0
n
n div 2 2
x x x
, если n нечетное
2
x n div 2 , если n четное

13. Задачи и многообразие алгоритмов их решения

Задача возведения в степень
Дано число x и натуральное (целое неотрицательное) число n ≥ 0.
Вычислить значение функции f(x) = хn
x x ... x x x x ... x , если n нечетное
n div 2 раз
n div 2 раз
x n x x ... x
n раз
x x ... x x x ... x , если n четное
n div 2 раз n div 2 раз
1, если n 0
2
x n x x n div 2 , если n нечетное
2
x n div 2 , если n четное
Рекурсивный алгоритм
возведения в степень

14. Задачи и многообразие алгоритмов их решения

Задача возведения в степень
Дано число x и натуральное (целое неотрицательное) число n ≥ 0.
Вычислить значение функции f(x) = хn
English     Русский Rules