|
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 17
|
|
Алгоритм Дейкстры27.05.2018, 11:12. Показов 76083. Ответов 8
Метки нет (Все метки)
Всем доброго дня! Столкнулся с проблемой, никак не могу понять, как лучше реализовать алгоритм Дейкстры на с++.
У меня есть двумерный массив A[x][y] в котором записаны расстояния, между вершинами x и y графа. Можете подсказать, как мне действовать и от чего плясать? Заранее спасибо
0
|
|
| 27.05.2018, 11:12 | |
|
Ответы с готовыми решениями:
8
Алгоритм Дейкстры Алгоритм Дейкстры С++ Алгоритм Дейкстры |
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
||
| 27.05.2018, 11:34 | ||
|
Сначала можно посмотреть темы снизу или просто загуглить, все это давно есть
0
|
||
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
||||||
| 27.05.2018, 11:49 | ||||||
1
|
||||||
|
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 17
|
||
| 27.05.2018, 13:17 [ТС] | ||
|
Спасибо огромное! Вы мне очень помогли
![]() Добавлено через 1 час 16 минут
0
|
||
| 27.05.2018, 14:33 | ||||||||||||
|
Заводите еще один vector<int> parent(n, -1); И после этой строки вставляете parent[j] = i; Вывод тогда будет таким
1
|
||||||||||||
|
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 17
|
|||||||
| 28.05.2018, 13:34 [ТС] | |||||||
|
Добавлено через 22 часа 29 минут Вот что у меня получилось... ищет короткие пути из любой вершины в любую, но вот как сам путь найти я, хоть убейте, не допру
0
|
|||||||
|
393 / 263 / 193
Регистрация: 02.05.2017
Сообщений: 1,003
|
||||||
| 28.05.2018, 15:32 | ||||||
Сообщение было отмечено Leonsmoke как решение
Решение
Leonsmoke, цитата с интернета : разумеется, обычно нужно знать не только длины кратчайших путей, но и получить сами пути. Покажем, как сохранить информацию, достаточную для последующего восстановления кратчайшего пути из s до любой вершины. Для этого достаточно так называемого массива предков: массива p[], в котором для каждой вершины v != s хранится номер вершины p[v], являющейся предпоследней в кратчайшем пути до вершины v. Здесь используется тот факт, что если мы возьмём кратчайший путь до какой-то вершины v, а затем удалим из этого пути последнюю вершину, то получится путь, оканчивающийся некоторой вершиной p[v], и этот путь будет кратчайшим для вершины p[v]. Итак, если мы будем обладать этим массивом предков, то кратчайший путь можно будет восстановить по нему, просто каждый раз беря предка от текущей вершины, пока мы не придём в стартовую вершину s — так мы получим искомый кратчайший путь, но записанный в обратном порядке.
Осталось понять, как строить этот массив предков. Однако это делается очень просто: при каждой успешной релаксации, т.е. когда из выбранной вершины v происходит улучшение расстояния до некоторой вершины to, мы записываем, что предком вершины to является вершина v: p[to] = v Добавлено через 1 час 33 минуты Leonsmoke, если на примере сообщения выше, первого способа Ромаха и моего кода из моего же, собсна,первого ответа, то как-то так :
2
|
||||||
|
0 / 0 / 0
Регистрация: 26.02.2018
Сообщений: 17
|
|
| 28.05.2018, 18:00 [ТС] | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 08.12.2019
Сообщений: 4
|
||||||
| 09.12.2019, 18:54 | ||||||
|
Здравствуйте, подскажите, а как изменить код так, чтобы путь выводился для каждой вершины ?
0
|
||||||
| 09.12.2019, 18:54 | |
|
Помогаю со студенческими работами здесь
9
Алгоритм Дейкстры Алгоритм Дейкстры
Алгоритм Дейкстры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|