- •Список вопросов по дисциплине «Структуры и алгоритмы обработки данных»
- •Алгоритм. Свойства алгоритма.
- •Понятие сложности алгоритма.
- •Классы сложности алгоритмов.
- •Структуры данных. Массив
- •Структуры данных. Связный список.
- •Структуры данных. Хэш-таблицы.
- •Структуры данных. Бинарное дерево. ??
- •Алгоритмы сортировки. Сортировка выбором.
- •Алгоритмы сортировки. Вставкой.
- •Алгоритмы сортировки. Обменом.
- •Алгоритмы сортировки. Шелла.
- •Алгоритмы сортировки. Турнирная.
- •Алгоритмы сортировки. Пирамидальная.
- •1. Постройте максимальную кучу из входных данных.
- •2. В этот момент самый большой элемент хранится в корне кучи. Замените его на последний элемент кучи, а затем уменьшите размер кучи на 1. Наконец, наведите корень дерева.
- •3. Повторите вышеуказанные шаги, пока размер кучи больше 1.
- •Алгоритмы сортировки. Быстрая.
- •Методы поиска. Бинарный.
- •Методы поиска. Бинарное дерево.
- •Методы поиска. Фибоначчиев.
- •Методы поиска. Интерполяционный.
- •Методы поиска в строке. Кнута-Морриса-Пратта.
- •Методы поиска в строке. Бойера-Мура.
- •Понятие стека.
- •Поиск в глубину.
- •Остовное дерево.
- •Минимальное остовное дерево Алгоритм Прима(Хахаха, прям как в дискретке) Нам нужно связать все точки, чтобы не было цикла из точек(Это объяснение для нас)
- •Алгоритмы поиска путей. Флойда-Уоршелла.(Динамическое программирование)- самый эффективный
- •Алгоритмы поиска путей. Дейкстры.(Динамическое программирование)
- •Алгоритмы поиска путей. Беллмана-Форда.(Динамическое программирование)
- •Алгоритмы поиска путей. Джонсона.(Динамическое программирование)
- •Алгоритмы поиска путей. Йена.(Динамическое программирование) Алгоритм для поиска альтернативных кратчайших путей в графе
- •Алгоритмы поиска путей. А*.(Эвристический алгоритм)
Алгоритмы поиска путей. Йена.(Динамическое программирование) Алгоритм для поиска альтернативных кратчайших путей в графе
Используется алгоритм Дейкстры для нахождения 1 кратчайшего пути(обозначу его №1 - для нас)
Берется начальная точка из этого пути и удаляется ребро, которое ведет к следующей точка, чтобы алгоритм дейкстры не пошел по №1 кратчайшему пути
Использую алгоритм дейкстры, и добавляю новый кратчайший путь в список с путями кандидатами, для будущей финальной выборки
Далее беру следующую точку, к которой удаляли ребро.
Удаляю предыдущую точку и ребро к ней, чтобы алгоритм дейкстры не пошел через точки первого пути, а также удаляю ребро к следующей точки из пути №1
Использую алгоритм дейкстры, и добавляю новый кратчайший путь в список с путями кандидатами, для будущей финальной выборки
И так далее продолжаю удалять предыдущий путь и следующее ребро из №1 кратчайшего пути
Далее из списка кандидатов выбираю самый короткий путь и добавляю его(№2) к №1 кратчайшему пути
На данный момент у нас есть 2 пути, теперь мы также берем начальную точку, но теперь убираем те финальные пути 2 пути, также как и в процессе нахождения 2 ребра, то есть убираем ребро ведущее к 1, так как и в №1 и в №2 есть эта точка
Потом также продолжаем до того момента, когда у нас появится 2 пути по которым мы уже проходили
Теперь мы убираем 2 ребра , чтобы не идти ни по №1 ни по №2 и используем алгоритм Дейкстры -) находим новый путь, добавляем его к новым кандидатам
В конечном итоге продолжаем так делать пока не найдем нужное нам количество альтернативных путей
Алгоритмы поиска путей. А*.(Эвристический алгоритм)
Программа использует алгоритм А*, который пошагово просматривает все пути, ведущие от начальной вершины в конечную, пока не найдёт минимальный. Как и все информированные алгоритмы поиска, он просматривает сначала те маршруты, которые «кажутся» ведущими к цели. При выборе вершины он учитывает весь пройденный до неё путь.
В начале работы просматриваются узлы, смежные с начальным; выбирается тот из них, который имеет минимальное значение, после чего этот узел раскрывается. На каждом этапе алгоритм оперирует с множеством путей из начальной точки до всех ещё не раскрытых вершин графа — множеством частных решений, — которое размещается в очереди с приоритетом. Приоритет пути определяется по значению. Алгоритм продолжает свою работу до тех пор, пока значение целевой вершины не окажется меньшим, чем любое значение в очереди, либо пока всё дерево не будет просмотрено. Из множества решений выбирается решение с наименьшей стоимостью.