clc
clear
time = 0;
licznik = 1;
czas_calosci = 0;
for n = 5:5:100 % Pętla wybierająca ilość węzłów z krokiem 5
for l = 1:1:30 % Wyznaczanie prawidłowej średniej - utworzenie krawędzi
W = 1+ceil(rand(1)*100 ) % Losowanie wag dla powstałych węzłów
for i = 1:n
for j = 1:n
if i==j % Jezeli obie wartości są równe..
W(i, j) = 0; % Przerwanie pętli jeśli obie wartości sa takie same
end
end
end
s = 1; % Wierzchołek startowy
t = 5; % Wierzchołek końcowy
newlabel = 0; % Zmienna pomocnicza przechowujaca cechę tymczasową
for v = 1:n
dist(v) = inf % Ustawienie odległości między wierzchołkami na nieskończoność
final(v) = false % Ustawienie drogi na drogę tymczasową - false
pred(v) = -1; % Ustawienie poprzedniego wierzchołka na -1
end
dist(s)=0; % Odległość od początku do danego wierzchołka
final(s) = true; % Ustawienie drogi na drogę stałą - true
recent = s; % Zmienna pomocnicza oznaczająca poprzedni wierzchołek
tic; % Rozpoczęcie odliczania czasu
while final(t)==false % Pętla działająca dopóki algorytm uznaje drogę tymczasową dla ostatniego wierzchołka
for v = 1:n
newlabel=dist(recent)+W(recent, v); % Przypisanie odległości poprzednich wartości
if newlabel<dist(v) % Jezeli powyższa wartość jest mniejsza od aktualnej odległości..
dist(v)=newlabel; % Ustawienie odległości na powyższy wynik
pred(v)=recent; % Ustawienie poprzedniego wierzchołka na aktualny
end
end
temp = inf; % Przypisanie tymczasowej wartości 'nieskończoność' dla zmiennej temp
for v = 1:n
if (final(v)==false) % Jeżeli aktualna droga jest drogą tymczasową..
if (dist(v)<temp) % Jezeli aktualna odległość jest mniejsza od zmiennej temp..
y=v; % Podstawienie aktualnej wartości pod zmienną y
temp = dist(v); % Podstawienie aktualnej odległości pod zmienną temp
end
end
end
if (temp<inf) % Jeżeli zmienna temp jest mniejsza od nieskończoności..
final(y)=true; % Ustawienie aktualnej drogi na drogę stałą
recent=y; % Ustawienie poprzedniego wierzchołka na aktualny
else
final(t)=true; % Ustawienie drogi na drogę stałą
end
end
czas_calosci = czas_calosci + toc; % Zakończenie liczenia czasu
end
end
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}