Скачать презентацию Алгоритмы анализ алгоритмов Лекция 1 Теория алгоритмов Скачать презентацию Алгоритмы анализ алгоритмов Лекция 1 Теория алгоритмов

Лекция 1 Алгоритмы, анализ сложности.ppt

  • Количество слайдов: 36

Алгоритмы, анализ алгоритмов Лекция 1 Алгоритмы, анализ алгоритмов Лекция 1

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

Определение • • Алгоритм — набор инструкций, описывающих порядок действий исполнителя достижения результата решения Определение • • Алгоритм — набор инструкций, описывающих порядок действий исполнителя достижения результата решения задачи за конечное число действий. Алгоритм — это точно определённая инструкция, последовательно применяя которую к исходным данным, можно получить решение задачи.

Свойства алгоритмов • • Дискретность — алгоритм должен представлять процесс решения задачи как последовательное Свойства алгоритмов • • Дискретность — алгоритм должен представлять процесс решения задачи как последовательное выполнение некоторых простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, то есть преобразование исходных данных в результат осуществляется во времени дискретно. Детерминированность (определённость). В

Описание алгоритмов • Словесное описание • Блок-схема • Псевдокод • Flow-формы • Диаграммы Насси-Шнейдермана Описание алгоритмов • Словесное описание • Блок-схема • Псевдокод • Flow-формы • Диаграммы Насси-Шнейдермана

Словесное описание • Click to edit the outline Это, по существу, • ПРИМЕР : Словесное описание • Click to edit the outline Это, по существу, • ПРИМЕР : Найти text format обычный язык, но с наибольшего из тщательным трёх заданных Second Outline Level отбором слов и чисел. Third Outline a, b, c. фраз, не Level допускающих Fourth Outline лишних слов, Level • 1. Сравнить a и b. двусмысленностей Fifth Если a>b, то в и повторений. качестве Outline Level Дополняется язык максимума t Sixth

Блок схемы • • • Правила выполнения схем определяются следующими документами: ГОСТ 19. 701 Блок схемы • • • Правила выполнения схем определяются следующими документами: ГОСТ 19. 701 -90. Схемы алгоритмов, программ, данных и систем. Условные обозначения и правила выполнения. ГОСТ 19. 003 -80. Схемы алгоритмов и программ. Обозначения условные графические.

Блок начала-конца алгоритма • Надпись на блоке: Блок начала-конца алгоритма • Надпись на блоке: "начало" ("конец").

Блок ввода-вывода данных • Надпись на блоке: слово Блок ввода-вывода данных • Надпись на блоке: слово "ввод" ("вывод" или "печать") и список вводимых (выводимых) переменных.

Блок операции • Элементарная (атомарная) операция по обработке данных (например, n=n+1) Блок операции • Элементарная (атомарная) операция по обработке данных (например, n=n+1)

Блок операции • Предопределенный процесс- процесс, состоящий из операций, описанных в другом месте (на Блок операции • Предопределенный процесс- процесс, состоящий из операций, описанных в другом месте (на другой схеме)

Линейный алгоритм • Такой алгоритм , в котором все операции выполняются последовательно одна за Линейный алгоритм • Такой алгоритм , в котором все операции выполняются последовательно одна за другой. Click to edit the outline text format Second Outline Level Third Outline Level Fourth Outline Level Fifth Outline Level Sixth

Пример • • Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника. Пусть Пример • • Зная длины трех сторон треугольника, вычислить площадь и периметр треугольника. Пусть a, b, c - длины сторон треугольника. Необходимо Click to edit the outline text format Second Outline Level Third Outline Level Fourth Outline Level Fifth Outline Level Sixth

Условный блок • Надпись на блоке: условие. В результате проверки условия осуществляется выбор одного Условный блок • Надпись на блоке: условие. В результате проверки условия осуществляется выбор одного из возможных путей (ветвей) вычислительного процесса. Если условие выполняется, то следующим выполняется этап по ветви "+", если условие не выполняется, то выполняется этап по ветви "–".

Seventh Outline Level Eighth Outline Level Условный блок • Ninth Outline Level. Образец Полный Seventh Outline Level Eighth Outline Level Условный блок • Ninth Outline Level. Образец Полный вариант • Сокращенный текста условного блока Click to edit the outline text вариант условного Click to edit the outline text format блока Second Outline Level Third Outline Level Fourth Outline Level Fifth Outline Level Sixth Outline Level Seventh

Примеры Click to edit the outline text format Second Outline Level Third Outline Level Примеры Click to edit the outline text format Second Outline Level Third Outline Level Fourth Outline Level Fifth Outline Level Sixth

Цикл со счетчиком • Подготовительные операции, выполняемые с целью модификации последующих операций (цикл с Цикл со счетчиком • Подготовительные операции, выполняемые с целью модификации последующих операций (цикл с параметром [For-To-Do])

Цикл • Начало и конец цикла. Особенности работы цикла (инициализация, приращение, условие) записывается в Цикл • Начало и конец цикла. Особенности работы цикла (инициализация, приращение, условие) записывается в начале или конце, в зависимости от того, где осуществляется его проверка (циклы с пред- или постусловием)

Примеры • • Пример1 Возвести число а в степень b используя цикл Пример2 найти Примеры • • Пример1 Возвести число а в степень b используя цикл Пример2 найти значения функции y=x*x, c на интервале (а, b), c шагом с используя цикл с условием

Seventh Outline Level Eighth Outline Level А так же! • • Ninth Outline Level. Seventh Outline Level Eighth Outline Level А так же! • • Ninth Outline Level. Образец Дополнительные • Правила текста блоки Параллельные действия Click to edit the outline text • Допускается Click to edit the outline text format Second Outline Level • • Third Outline Level Поток данных или Fourth Outline управления Level Fifth Outline Level Sixth Outline Level Комментарии Seventh зеркально Second Outline Level отображать Third Outline Level символы и Fourth Outline поворачивать их Level вокруг оси. В Fifth Outline частности, Level Sixth Outline запоминающие Level устройства с Seventh

Псевдокод • Алгоритм поиска максимального элемента массива • Click to edit the outline Max. Псевдокод • Алгоритм поиска максимального элемента массива • Click to edit the outline Max. S (S, n; Max) text format Max = S[1] For I = 2 to n Second Outline Level if Max < S[i] Third Outline then Max = S[i] Level end for Fourth Outline return Max Level End Fifth Outline Level Sixth

Диаграммы Насси. Шнейдермана Диаграммы Насси. Шнейдермана

Примеры Примеры

Преимущества • • • Запись является более компактной Изобразив алгоритм или программу в виде Преимущества • • • Запись является более компактной Изобразив алгоритм или программу в виде диаграммы Насси — Шнейдермана, можно быть гарантировано уверенным в том, что принципы структурного программирования соблюдены Диаграммы Насси — Шнейдермана удобнее использовать для пошаговой детализации задачи

Анализ трудоемкости алгоритмов Анализ трудоемкости алгоритмов

Анализ трудоемкости алгоритмов • При анализе алгоритма выбор входных данных может существенно повлиять на Анализ трудоемкости алгоритмов • При анализе алгоритма выбор входных данных может существенно повлиять на его выполнение. Скажем, некоторые алгоритмы сортировки могут работать очень быстро, если входной список уже отсортирован, тогда как другие алгоритмы покажут весьма скромный результат на таком списке. А вот на случайном списке результат может оказаться противоположным.

Лучший и худший случай • • Худший случай - Такой набор данных представляет собой Лучший и худший случай • • Худший случай - Такой набор данных представляет собой комбинацию значений, на которой алгоритм выполняет меньше всего действий. Лучший случай- Такой набор данных представляет собой комбинацию значений, на которой алгоритм выполняет меньше всего действий.

Средний случай 1 В основе анализа лежит определение различных групп, на которые следует разбить Средний случай 1 В основе анализа лежит определение различных групп, на которые следует разбить возможные входные наборы данных. 2 На втором шаге определяется вероятность, с которой входной набор данных принадлежит каждой группе. 3 На третьем шаге подсчитывается время работы алгоритма на данных из каждой группы.

Средний случай • • Среднее время работы вычисляется по формуле: где через n обозначен Средний случай • • Среднее время работы вычисляется по формуле: где через n обозначен размер входных данных, через т — число групп. p —

Трудоемкость • • Трудоемкость алгоритма - количество элементарных операций, которые необходимо выполнить для решения Трудоемкость • • Трудоемкость алгоритма - количество элементарных операций, которые необходимо выполнить для решения задачи с помощью данного алгоритма. Функция трудоемкости - отношение, связывающие входные данные алгоритма с количеством элементарных операций. Будем обозначать трудоемкость F

Элементарные операции в языке В качестве «элементарных» операций предлагается записи алгоритмов использовать следующие: • Элементарные операции в языке В качестве «элементарных» операций предлагается записи алгоритмов использовать следующие: • • Простое присваивание: а = b; • Одномерная индексация a[i]; • Арифметические операции: (*, /, -, +); • Операции сравнения: a < b(>, >=, <=, ==, !=); • Логические операции {or, and, not};

 • Классификация алгоритмов по 1. Количественно-зависимые по виду функции трудоёмкости трудоемкости алгоритмы - • Классификация алгоритмов по 1. Количественно-зависимые по виду функции трудоёмкости трудоемкости алгоритмы - Это алгоритмы, функция трудоемкости которых зависит только от размерности конкретного входа, и не зависит от конкретных значений • 2. Параметрически-зависимые по трудоемкости алгоритмы - Это алгоритмы, трудоемкость которых определяется не размерностью входа (как правило, для этой

Базовые конструкции при анализе трудоемкости Конструкция «Следование» • F=F 1+F 2 Конструкция «Ветвление» • Базовые конструкции при анализе трудоемкости Конструкция «Следование» • F=F 1+F 2 Конструкция «Ветвление» • F=p*F 1+(1 -p)F 2 Конструкция «Цикл» • F=1+3*N+N*Fтело

Пример 1 Задача суммирования элементов квадратной матрицы • Sum. M (A, n; Sum) Sum Пример 1 Задача суммирования элементов квадратной матрицы • Sum. M (A, n; Sum) Sum = 0 For i = 1 to n For j = 1 to n Sum = Sum + A[i, j] end for Return (Sum) End

 • Пример 2 Задача поиска Max. S (S, n; Max) максимума в массиве • Пример 2 Задача поиска Max. S (S, n; Max) максимума в массиве Max <-- S[1] For i <-- 2 to n if Max < S[i] then Max <-- S[i] end for return Max End

Прочитать к лекции 2 • • Макконнелл, Дж. Основы современных алгоритмов [Текст] / Дж. Прочитать к лекции 2 • • Макконнелл, Дж. Основы современных алгоритмов [Текст] / Дж. Макконнелл. – М. : Техносфера, 2006. – 366 с. – глава 1 (1. 51. 7)(+ Глава 2) Кормен (Введение(упор), Глава 1 бегом)