![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
RussoTuristo |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
Задача состоит в нахождении минимального остова графа ... Задаю матрицу смежности ( элементу матрицы a[i,j]:=w, где w - вес ребра)
Мне нужно отсортировать рёбра по весу, задача вроде лёгкая, но либо я туплю, либо всё не так просто ...
Хотел использовать пузырьковую сортировку ... Проблема состоит в том что я не знаю как записать предыдущий элемент... Или может как-то по-другому надо поступать? Сообщение отредактировано: RussoTuristo - 18.12.2008 17:29 |
![]() ![]() |
amega |
![]()
Сообщение
#2
|
![]() ? ![]() ![]() ![]() Группа: Пользователи Сообщений: 283 Пол: Мужской Репутация: ![]() ![]() ![]() |
может легче будет тебе написать процедуру перевода из матрицы в масив потом сортировка масива а потом просто описть проходдение матрици и переписовать из масива в матрицу
|
RussoTuristo |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
k:=0; Переписали в массив for i:=1 to n do Отсортировали массив ... Но мне нужно работать именно с элементами a[i,j] потому что нужно окрашивать вершины (m[i]:=1 - вершина вошла в остов ....) Как обратно переделать чтоб отсортированный массив b[k] стал a[i,j]? Сообщение отредактировано: RussoTuristo - 19.12.2008 14:45 |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Цитата Переписали в массив Ты ничего в массив не переписал:k:=0;, то есть все, чего ты добился - это изменение в цикле K, и присваивания непонятно чему (после цикла в переменных I, J может храниться все, что угодно) значения b[ K ]... P.S. Нахождение мин. остова алгоритмами Прима и Краскала есть здесь: графы Будет проще из твоей матрицы смежности сделать список ребер, и прогнать алгоритм Краскала, чем изобретать велосипед... |
RussoTuristo |
![]()
Сообщение
#5
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо, насчет массива понял, забыл begin end
А насчет алгоритмов, не мог бы кто-нибудь пояснить алгоритмы, приведенные в ссылках .. Мне надо решить жадным алгоритмом, т.е найти ребро минимального веса, окрасить вершины, инцидентные этому ребру. Затем найти ребро минимального веса, смежное найденному и т.д. Просто сложновато разобраться в алгоритмах, они там без пояснений. По-моему алгоритм Прима похож на нужный мне (Насколько я понимаю их отличие в том, что алгоритм прима в качестве начальной берет первую попавшуюся вершину, а жадный - нужный мне, для начала берет ребро минимального веса, вроде правильно понял и если там представлена реализация этого алгоритма Прима) ... |
RussoTuristo |
![]()
Сообщение
#6
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
Построение минимального каркаса методом Прима:
procedure solve; Ищем ребро минимально веса. Включаем вершины в список минимального остова, и исключаем вершины из списка неокрашенных ... while sm <> [] do Потом находим оставшиеся рёбра остова ... вроде всё так ... sp - список включенных ребер sm - список оставшихся вершин Есть еще один вопросик: Можно ли в этот алгоритм как-нибудь вставить стек, очередь или дек? Возможно ли их применение в этом алгоритме? Сообщение отредактировано: RussoTuristo - 19.12.2008 18:09 |
RussoTuristo |
![]()
Сообщение
#7
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
procedure TForm1.SpeedButton3Click(Sender: TObject); Вроде все так .... Помогите пожалуйста: var Выдает ошибку [Warning] Unit1.pas(72): Unsafe type 'f: file of Integer' Сообщение отредактировано: RussoTuristo - 20.12.2008 17:30 |
RussoTuristo |
![]()
Сообщение
#8
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 80 Пол: Мужской Репутация: ![]() ![]() ![]() |
Может всё-таки кто-нибудь сможет помочь с ошибкой ...
Завтра сдавать программу, я вообще не понимаю из-за чего эта ошибка вылезает, запускаешь прогу и вылезает сообщение: is not a valid integer value. Хотя раньше запускалась программа, а с вводом данных я ничего не трогал ... Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 1:34 |