Содержание
- 2. Литература по алгоритмизации: Кнут Д. Искусство программирования. Тома 1-4, 1976-2013. Вирт Н. Алгоритмы + структуры данных
- 3. Литература по С++: Страуструп Б. Программирование. Принципы и практика с использованием C++. 2-е изд., 2016. Прата
- 4. Интернет-ресурсы (общего назначения): Национальный открытый университет «ИНТУИТ» [Электронный ресурс] URL: http://www.intuit.ru/ (дата обращения 11.09.2016). Хабр [Электронный
- 5. 1. Алгоритмы: вводные понятия.
- 6. Алгоритм (лат. algorithmi) – Это набор инструкций, описывающих порядок действий исполнителя, для достижения определённого результата (неформальное
- 7. Алгоритм вычислений Алгоритм решения вычислительной задачи – это корректно определённая вычислительная процедура, на вход которой подаётся
- 8. Исполнитель – Это абстрактная или реальная (техническая или биологическая) система, способная выполнить действия, предписываемые алгоритмом Неформальный
- 9. Теория алгоритмов – Наука на стыке математики и информатики об общих свойствах и закономерностях алгоритмов и
- 10. Способы формализации алгоритма Теория автоматов: машина Тьюринга, машина Поста; Рекурсивные функции Гёделя — Эрбрана — Клини
- 11. Виды алгоритмов Детерминированные (жёсткие, механические) – единственная и достоверная последовательность инструкций, приводящая к однозначному результату Гибкие:
- 12. Свойства алгоритма: Дискретность – разбиение на конечное количество отдельных шагов Понятность – включает только команды из
- 13. Способы записи алгоритма Словесный (на естественном языке) Формульный Табличный (для реляционных задач) Графический (блок-схемы) Операторный –
- 14. Компьютерная программа – Это алгоритм решения вычислительной задачи компьютером Исполнитель Машинная команда: КОп (обяз.часть) Адресная часть
- 15. Язык программирования – Это набор допустимых операторов, синтаксические и семантические правила их использования для создания компьютерных
- 16. 2. Корректность алгоритма.
- 17. Инвариант Алгоритм корректен, если для каждого ввода результатом его работы является корректный вывод Методы оценки корректности
- 18. Инвариант цикла – Свойство, сохраняемое циклом – это логическое выражение (предикат), истинное непосредственно перед и сразу
- 19. Доказательство корректности цикла инвариантом 1. Доказывается, что выражение инварианта истинно перед началом цикла (инициализация). 2. Доказывается,
- 20. Схема проверки инварианта цикла
- 21. Пример – алгоритм поиска минимума в массиве Формулировка инварианта: После выполнения каждого шага цикла в переменной
- 22. Область неопределённости Область изменения параметров задачи [1,n) можно разделить на две части: исследованную область, для которой
- 23. Пример – алгоритм суммирования элементов массива После каждого шага цикла при любом i к переменной Sum
- 24. Пример – сортировка массива пузырьком На каждом шаге внешнего цикла на свое место «всплывает» один элемент
- 25. 3. Анализ эффективности алгоритма
- 26. Анализ алгоритма Позволяет предсказать требуемые для его выполнения ресурсы (время работы процессора, память и пр.) На
- 27. Эффективность алгоритма Критерии – скорость (время) и расход памяти (или других ресурсов – диска, трафик в
- 28. Сложность алгоритма Сложность как характеристика связана с эффективностью: Эффективный алгоритм требует приемлемое время исполнения и разумную
- 29. Вычислительная сложность Составляющие: Временная сложность - отражает временные затраты на реализацию алгоритма Емкостная сложность – отражает
- 30. Практический метод (1/2) Характеризуется измеримыми параметрами: Временная сложность – во временных единицах (микро-, милли-, секундах) или
- 31. Практический метод (2/2) Факторы, влияющие на оценку: Особенности аппаратно-программной платформы: Характеристики оборудования (тактовая частота, объём ОЗУ
- 32. Теоретический подход (1/2) Характеризует алгоритм без привязки к конкретному оборудованию, ПО и средствам реализации Временная сложность
- 33. Теоретический подход (2/2) Факторы, влияющие на оценку эффективности (сложности): Объём входных данных (размер входа, размерность задачи)
- 34. Модель вычислительной машины Идеализированная одноядерная однопроцессорная машина с памятью с произвольным доступом (RAM) Команды – арифметические,
- 35. Время работы алгоритма Тогда время работы алгоритма складывается из элементарных операций (шагов), которые необходимо выполнить Время
- 36. Функция роста Время работы – это функция от объёма входных данных Пусть n – объём входных
- 37. Лучший, средний и худший случаи Пусть рассматривается алгоритм проверки наличия числа в некотором массиве Если этот
- 38. Правила определения количества операторов в одной инструкции алгоритма 1. В строке алгоритма расположена одна простая команда
- 39. Пример 1. Среднее арифметическое всех положительных чисел массива A[n] T(n)=1+1+(n+1)+n+n+n+1+1=4n+5 Порядок роста: 4 и 5 –
- 41. Скачать презентацию