IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Помогите с сортировкой
RussoTuristo
сообщение 18.12.2008 17:26
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 80
Пол: Мужской

Репутация: -  0  +


Задача состоит в нахождении минимального остова графа ... Задаю матрицу смежности ( элементу матрицы a[i,j]:=w, где w - вес ребра)
Мне нужно отсортировать рёбра по весу, задача вроде лёгкая, но либо я туплю, либо всё не так просто ...


For i:=1 to n do
For j:=1 to n do
if Pred a[i,j]< a[i,j] then .....



Хотел использовать пузырьковую сортировку ...
Проблема состоит в том что я не знаю как записать предыдущий элемент...
Или может как-то по-другому надо поступать?

Сообщение отредактировано: RussoTuristo - 18.12.2008 17:29
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
RussoTuristo
сообщение 19.12.2008 18:06
Сообщение #2


Пионер
**

Группа: Пользователи
Сообщений: 80
Пол: Мужской

Репутация: -  0  +


Построение минимального каркаса методом Прима:
procedure solve;
var sm,sp:set of 1..maxn;
min,i,j,l,t:integer;
begin
min:=maxint;
sm:=[1..n];sp:=[];
for i:=1 to n-1 do
for j:=i+1 to n do
if (a[i,j] < min) and (a[i,j] <> 0) then
begin
min:=a[i,j];
l:=i;t:=j;
end;
sp:=[l,t];sm:=sm-[l,t];
write(l,' ',t ,' ');

Ищем ребро минимально веса. Включаем вершины в список минимального остова, и исключаем вершины из списка неокрашенных ...
 while sm <> [] do
begin
min:=maxint;
l:=0;t:=0;
for i:=1 to n do
if not (i in sp) then
for j:=1 to n do
if (j in sp) and (a[i,j] < min) and (a[i,j] <> 0) then
begin
min:=a[i,j];
l:=i;t:=j;
end;
sp:=sp+[l];sm:=sm-[l];
write(l,' ',t,' ');
end;
end;

Потом находим оставшиеся рёбра остова ... вроде всё так ...

sp - список включенных ребер
sm - список оставшихся вершин

Есть еще один вопросик: Можно ли в этот алгоритм как-нибудь вставить стек, очередь или дек? Возможно ли их применение в этом алгоритме?

Сообщение отредактировано: RussoTuristo - 19.12.2008 18:09
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.07.2025 13:59
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"