Галерея диаграмм связей Введение в алгоритмы
Краткое изложение вводных знаний по алгоритмам, которое знакомит с понятиями алгоритмов, выражениями алгоритмов, анализом сложности алгоритмов, этапами разработки алгоритмов и т. д. Это основа для проектирования и анализа компьютерных алгоритмов, а также закладывает основу для освоения учащимися различных конкретных алгоритмов в будущее Это важный контент, который необходимо усвоить в процессе изучения алгоритмов.
Отредактировано в 2024-03-02 22:28:38A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
A segunda unidade do Curso Obrigatório de Biologia resumiu e organizou os pontos de conhecimento, abrangendo todos os conteúdos básicos, o que é muito conveniente para todos aprenderem. Adequado para revisão e visualização de exames para melhorar a eficiência do aprendizado. Apresse-se e colete-o para aprender juntos!
Este é um mapa mental sobre Extração e corrosão de mim. O conteúdo principal inclui: Corrosão de metais, Extração de metais e a série de reatividade.
Este é um mapa mental sobre Reatividade de metais. O conteúdo principal inclui: Reações de deslocamento de metais, A série de reatividade de metais.
Введение в алгоритмы
Концепция алгоритма
Основной смысл алгоритма
метод решения определенной проблемы
Определение алгоритма
неофициальное описание
Алгоритм — это конечный набор правильно сформированных правил. Он определяет серию операций для решения определенного типа проблемы. Это метод или процесс решения проблемы. Это последовательность инструкций, которые удовлетворяют требованиям ввода, вывода и достоверности. , и конечность.
Входные данные: существует ноль или более внешних величин, которые служат входными данными для алгоритма.
Выходные данные: алгоритм выдает на выходе хотя бы одну величину.
Детерминированный: каждая инструкция, составляющая алгоритм, ясна и недвусмысленна.
Конечность: каждая инструкция в алгоритме имеет ограниченное количество выполнений, и время выполнения каждой инструкции ограничено.
Алгоритмы и программы
Программа — это конкретная реализация алгоритма на определенном языке программирования.
Программа не обязана удовлетворять свойству алгоритма (4), то есть конечности, как, например, операционная система.
Программа = структура данных алгоритма языка программирования
Объем исследования алгоритмов
Численные расчеты
Линейные нелинейные уравнения, интерполяция, интегральный дифференциал
нечисловые расчеты
Сортировка, оптимизация, раскраска, путь, обход, машинное обучение, интеллектуальный анализ данных
свойства алгоритмов
правильность
Если для любого заданного допустимого входного сигнала алгоритм всегда дает правильный ответ на задачу в течение ограниченного времени, то алгоритм решения задачи называется правильным.
В основном это относится к математической корректности алгоритма. Потому что математическая корректность является основой корректности программы. Формулируя алгоритм, дайте математическое доказательство его корректности.
нагрузка
Измеряется по времени выполнения
Зависит от конкретной исполнительной машины, нехорошо
Измеряется количеством основных операций
Независимость от компьютера, на котором выполняется
Использование пространства
Требуемое пространство, за исключением места для хранения программ и входных данных
Работает на месте: использование дополнительного пространства является постоянной функцией размера входных данных.
простота
Алгоритм должен быть интуитивно понятным, понятным и легко читаемым. Простой алгоритм должен легко доказывать свою правильность и легко анализировать рабочую нагрузку.
оптимальность
Абстрактный механизм выражения алгоритмов
абстракция уровня языка
язык программирования высокого уровня
1. Близок к алгоритмическому языку, прост в освоении и освоении.
2. Обеспечить программистов структурированной средой программирования и инструментами. Программа обладает хорошей читабельностью, удобством сопровождения и высокой надежностью.
3. Не полагается на машинный язык, имеет хорошую переносимость программы и возможность повторного использования.
4. Компилятор справляется с тривиальными задачами, поэтому степень автоматизации высокая, цикл разработки короткий, качество программы высокое.
абстракция уровня данных
абстрактный тип данных
Абстрактный тип данных — это модель данных алгоритма вместе с набором операций, определенных в модели, которые служат строительными блоками алгоритма.
преимущество
(1) Проект алгоритма верхнего уровня отделен от реализации нижнего уровня;
(2) Разработка алгоритма отделена от разработки структуры данных, что позволяет свободно выбирать структуру данных;
(3) Модель данных и операции над моделью унифицированы в ADT, что облегчает компромисс между потреблением пространства и времени;
(4) Алгоритмы, выраженные в абстрактных типах данных, имеют хорошую ремонтопригодность;
(5) Алгоритм естественно модульный;
(6) Обеспечить эффективные способы и инструменты для постепенного совершенствования и модульности сверху вниз;
(7) Алгоритм имеет четкую структуру и отдельные уровни, что облегчает доказательство корректности алгоритма и анализ сложности.
Описать алгоритм
Джава
Структура программы
тип данных
метод
аномальный
Java-классы
общий метод
вывоз мусора
рекурсия
Этапы разработки алгоритма
Основные этапы разработки алгоритма
1. постановка задачи
2. Моделирование
3. разработка алгоритма
4. Доказательство корректности алгоритма
5. Реализация алгоритма
6. Анализ сложности алгоритма
7. Экспериментальный тест
8. Документация
Анализ сложности алгоритма
Причина анализа
Чтобы алгоритм успешно обработал конкретный входной сигнал, необходимо оценить или ограничить объем памяти и время работы, необходимые алгоритму.
Может количественно сравнивать эффективность разных алгоритмов для одной и той же задачи.
Классификация сложности
Алгоритм полиномиальной временной сложности
Алгоритм экспоненциальной временной сложности
Экспериментальное тестирование и анализ
причина
Эксперимент для проверки правильности алгоритма
Определение экспериментального качества алгоритмов
Определить вычислительные пределы алгоритма
метод
Вопрос на выбор: Что тестировать, цель тестирования.
Оцените среднее асимптотическое время работы алгоритма.
Сравните производительность аналогичных алгоритмов для данного входного сигнала.
Эксперимент по определению параметров в алгоритме
Для алгоритмов аппроксимации насколько близки результаты испытаний к оптимальному значению.
Определить метрики
Фактическое время работы
факторы помех
Другие программы, работающие на вашем компьютере
влияние на кэш
использование памяти
Генерация тестовых данных
достаточное количество
разные масштабы
другое распределение
Программируем и запускаем
программирование
Обеспечьте согласованность уровня программирования
бегать
Обеспечьте чистую вычислительную среду и уменьшите шум данных
анализ данных
тест на соотношение
Тест мощности
Документация
Описание и анализ проблемы
Моделирование и решение
Разработка алгоритма и процесс доказательства правильности
Анализ сложности алгоритма
Отчет о записи и анализе результатов испытаний
Требования к вводу/выводу и описание формата
Анализ сложности алгоритма
Используйте T(N,I) для представления временной сложности алгоритма A на абстрактном компьютере.
N: размер проблемы, которую необходимо решить.
DN: набор всех возможных входов размера N.
P(DN): Распределение вероятностей DN
I: входные данные для алгоритма, IεDN
мера временной сложности
Символ Описание
О
определение
математическое формальное определение
O(g(n)) — все функции с g(n) в качестве верхней границы.
символическое понимание
Арифметические правила
Доказательство (1)
Ом
определение
математическое формальное определение
θ
определение
математическое формальное определение
о
определение