Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Algorytmy i struktury danych
Cz¦±¢ druga
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Procedura (funkcja)rekurencyjna wywoªuje sam¡ siebie. Jest to odpowiednik indukcji w matematyce.
Najprostszy schemat procedury rekurencyjnej:
procedurenazwa(...); ...
begin
nazwa(...);
end;
Najprostszy schemat funkcji rekurencyjnej:
functionnazwa(...) :typ-danych; ...
begin
nazwa := nazwa(...);
end;
Uwaga. Nale»y zadba¢, aby procedura (funkcja) rekurencyjna nie tworzyªa niesko«czonej p¦tli.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Procedura (funkcja)rekurencyjna wywoªuje sam¡ siebie. Jest to odpowiednik indukcji w matematyce.
Najprostszy schemat procedury rekurencyjnej:
procedurenazwa(...); ...
begin
nazwa(...);
end;
Najprostszy schemat funkcji rekurencyjnej:
functionnazwa(...) :typ-danych; ...
begin
nazwa := nazwa(...);
end;
Uwaga. Nale»y zadba¢, aby procedura (funkcja) rekurencyjna nie tworzyªa niesko«czonej p¦tli.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Procedura (funkcja)rekurencyjna wywoªuje sam¡ siebie. Jest to odpowiednik indukcji w matematyce.
Najprostszy schemat procedury rekurencyjnej:
procedurenazwa(...); ...
begin
nazwa(...);
end;
Najprostszy schemat funkcji rekurencyjnej:
functionnazwa(...) :typ-danych; ...
begin
nazwa := nazwa(...);
end;
Uwaga. Nale»y zadba¢, aby procedura (funkcja) rekurencyjna nie tworzyªa niesko«czonej p¦tli.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Procedura (funkcja)rekurencyjna wywoªuje sam¡ siebie. Jest to odpowiednik indukcji w matematyce.
Najprostszy schemat procedury rekurencyjnej:
procedurenazwa(...); ...
begin
nazwa(...);
end;
Najprostszy schemat funkcji rekurencyjnej:
functionnazwa(...) :typ-danych; ...
begin
nazwa := nazwa(...);
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Przykªad: przypomnijmy, »e silni¦ liczby n deniujemy wzorem: n! =
(
1, n = 0, Qn
i=1i, n ≥ 1.
Silni¦ mo»emy równowa»nie zdeniowa¢ w sposób indukcyjny (rekurencyjny):
n! = (
1, n = 0,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Przykªad: przypomnijmy, »e silni¦ liczby n deniujemy wzorem: n! =
(
1, n = 0, Qn
i=1i, n ≥ 1.
Silni¦ mo»emy równowa»nie zdeniowa¢ w sposób indukcyjny (rekurencyjny):
n! = (
1, n = 0,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Kod funkcji realizuj¡cej obliczanie silni w sposób rekurencyjny mo»e wygl¡da¢ nast¦puj¡co:
functionsilnia(n : Integer) : Integer;
begin
if n = 0then silnia := 1
else silnia := silnia(n − 1) ∗ n;
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Innym typowym przykªadem rekurencji w matematyce jest ci¡g Fibonacciego {fn}∞n=0 zdeniowany: fn= 0, n = 0, 1, n = 1, fn−1+fn−2, n ≥ 2.
function b(n : Integer) : Integer;
begin
if n = 0then b := 0
else if n = 1thenb := 1
elseb := b(n − 1) + b(n − 2);
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja
Innym typowym przykªadem rekurencji w matematyce jest ci¡g Fibonacciego {fn}∞n=0 zdeniowany: fn= 0, n = 0, 1, n = 1, fn−1+fn−2, n ≥ 2.
function b(n : Integer) : Integer;
begin
if n = 0then b := 0
else if n = 1thenb := 1
elseb := b(n − 1) + b(n − 2);
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja - wady
Procedury rekurencyjne mimo, »e s¡ eleganckie i ªatwe w zaprogramowaniu, czasami s¡ maªo wydajne.
Prze±led¹my, jakie obliczenia s¡ wykonywane przez funkcj¦ b dla n = 4:
b(4) = b(3) + b(2) = (b(2) + b(1)) + (b(1) + b(0)) = ((b(1) + b(0)) + b(1)) + (b(1) + b(0)) = ((1 + 0) + 1) + (1 + 0) = 3
Zauwa»my, »e warto±¢ b(2) jest wyliczana dwa razy. Wraz ze wzrostem n liczba nadmiarowych oblicze« wzrasta drastycznie. wiczenie: napisz procedur¦ licz¡c¡ n-ty wyraz ci¡gu Fibonacciego bez wykorzystania rekurencji.
Wskazówka: wystarczy jedna p¦tla przebiegaj¡ca od 2 do n i wykorzystuj¡ca dwie pomocnicze zmienne które w ka»dym kroku przechowuj¡ (i − 1) i (i − 2) wyraz ci¡gu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja - wady
Procedury rekurencyjne mimo, »e s¡ eleganckie i ªatwe w zaprogramowaniu, czasami s¡ maªo wydajne.
Prze±led¹my, jakie obliczenia s¡ wykonywane przez funkcj¦ b dla n = 4:
b(4) = b(3) + b(2) = (b(2) + b(1)) + (b(1) + b(0)) = ((b(1) + b(0)) + b(1)) + (b(1) + b(0)) = ((1 + 0) + 1) + (1 + 0) = 3
Zauwa»my, »e warto±¢ b(2) jest wyliczana dwa razy. Wraz ze wzrostem n liczba nadmiarowych oblicze« wzrasta drastycznie. wiczenie: napisz procedur¦ licz¡c¡ n-ty wyraz ci¡gu Fibonacciego bez wykorzystania rekurencji.
Wskazówka: wystarczy jedna p¦tla przebiegaj¡ca od 2 do n i wykorzystuj¡ca dwie pomocnicze zmienne które w ka»dym kroku przechowuj¡ (i − 1) i (i − 2) wyraz ci¡gu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja - wady
Procedury rekurencyjne mimo, »e s¡ eleganckie i ªatwe w zaprogramowaniu, czasami s¡ maªo wydajne.
Prze±led¹my, jakie obliczenia s¡ wykonywane przez funkcj¦ b dla n = 4:
b(4) = b(3) + b(2) = (b(2) + b(1)) + (b(1) + b(0)) = ((b(1) + b(0)) + b(1)) + (b(1) + b(0)) = ((1 + 0) + 1) + (1 + 0) = 3
Zauwa»my, »e warto±¢ b(2) jest wyliczana dwa razy. Wraz ze wzrostem n liczba nadmiarowych oblicze« wzrasta drastycznie.
wiczenie: napisz procedur¦ licz¡c¡ n-ty wyraz ci¡gu Fibonacciego bez wykorzystania rekurencji.
Wskazówka: wystarczy jedna p¦tla przebiegaj¡ca od 2 do n i wykorzystuj¡ca dwie pomocnicze zmienne które w ka»dym kroku przechowuj¡ (i − 1) i (i − 2) wyraz ci¡gu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Rekurencja - wady
Procedury rekurencyjne mimo, »e s¡ eleganckie i ªatwe w zaprogramowaniu, czasami s¡ maªo wydajne.
Prze±led¹my, jakie obliczenia s¡ wykonywane przez funkcj¦ b dla n = 4:
b(4) = b(3) + b(2) = (b(2) + b(1)) + (b(1) + b(0)) = ((b(1) + b(0)) + b(1)) + (b(1) + b(0)) = ((1 + 0) + 1) + (1 + 0) = 3
Zauwa»my, »e warto±¢ b(2) jest wyliczana dwa razy. Wraz ze wzrostem n liczba nadmiarowych oblicze« wzrasta drastycznie. wiczenie: napisz procedur¦ licz¡c¡ n-ty wyraz ci¡gu Fibonacciego bez wykorzystania rekurencji.
Wskazówka: wystarczy jedna p¦tla przebiegaj¡ca od 2 do n i wykorzystuj¡ca dwie pomocnicze zmienne które w ka»dym kroku przechowuj¡ (i − 1) i (i − 2) wyraz ci¡gu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Wej±cie:tablica (ci¡g) n liczb A[1..n],Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt Sortrek(A, n) T (n) begin ifn > 1then Sortrek(A, n-1); 1 + T (n − 1)
wstaw A[n] w odpowiednie miejsce A[1..n − 1];
O(n)
end;
Sortrek(A, n);
Funkcja kosztu speªnia równanie: T (n) =
(
O(1), n = 1,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Wej±cie:tablica (ci¡g) n liczb A[1..n],Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt Sortrek(A, n) T (n) begin ifn > 1then Sortrek(A, n-1); 1 + T (n − 1)
wstaw A[n] w odpowiednie miejsce A[1..n − 1];
O(n)
end;
Sortrek(A, n);
Funkcja kosztu speªnia równanie: T (n) =
(
O(1), n = 1,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Wej±cie:tablica (ci¡g) n liczb A[1..n],Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt
Sortrek(A, n) T (n)
begin
ifn > 1then Sortrek(A, n-1);
1 + T (n − 1)
wstaw A[n] w odpowiednie miejsce A[1..n − 1];
O(n)
end;
Sortrek(A, n);
Funkcja kosztu speªnia równanie: T (n) =
(
O(1), n = 1,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Wej±cie:tablica (ci¡g) n liczb A[1..n],Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt
Sortrek(A, n) T (n)
begin
ifn > 1then Sortrek(A, n-1); 1 + T (n − 1) wstaw A[n] w odpowiednie miejsce A[1..n − 1];
O(n)
end;
Sortrek(A, n);
Funkcja kosztu speªnia równanie: T (n) =
(
O(1), n = 1,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Wej±cie:tablica (ci¡g) n liczb A[1..n],Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt
Sortrek(A, n) T (n)
begin
ifn > 1then Sortrek(A, n-1); 1 + T (n − 1) wstaw A[n] w odpowiednie miejsce A[1..n − 1]; O(n)
end;
Sortrek(A, n);
Funkcja kosztu speªnia równanie: T (n) =
(
O(1), n = 1,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Wej±cie:tablica (ci¡g) n liczb A[1..n],Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt
Sortrek(A, n) T (n)
begin
ifn > 1then Sortrek(A, n-1); 1 + T (n − 1) wstaw A[n] w odpowiednie miejsce A[1..n − 1]; O(n)
end;
Sortrek(A, n);
Funkcja kosztu speªnia równanie: T (n) =
(
O(1), n = 1,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Sortowanie przez wstawianie rekurencyjnie
Uproszczenie: T (n) = ( 1, n = 1, T (n − 1) + n, n > 1. Wówczas T (n) = T (n−1)+n = T (n−2)+(n−1)+n = T (n−3)+(n−2)+(n−1)+n = . . . =1 + 2 + . . . + (n − 2) + (n − 1) + n = 1 + n 2 n = O(n2).Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Dziel i zwyci¦»aj
Projektowanie algorytmu metod¡ dziel i zwyci¦»aj:
Dziel: dzielimy problem na podproblemy. Zwyci¦»aj:
rozwi¡zujemy podproblemy rekurencyjnie lub,
gdy s¡ maªe i nie wymagaj¡ u»ycia rekurencji stosujemy bezpo±rednie metody (dno rekursji).
Poª¡cz: ª¡czymy rozwi¡zane podproblemy, aby otrzyma¢ rozwi¡zanie caªego problemu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Dziel i zwyci¦»aj
Projektowanie algorytmu metod¡ dziel i zwyci¦»aj:
Dziel: dzielimy problem na podproblemy.
Zwyci¦»aj:
rozwi¡zujemy podproblemy rekurencyjnie lub,
gdy s¡ maªe i nie wymagaj¡ u»ycia rekurencji stosujemy bezpo±rednie metody (dno rekursji).
Poª¡cz: ª¡czymy rozwi¡zane podproblemy, aby otrzyma¢ rozwi¡zanie caªego problemu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Dziel i zwyci¦»aj
Projektowanie algorytmu metod¡ dziel i zwyci¦»aj:
Dziel: dzielimy problem na podproblemy. Zwyci¦»aj:
rozwi¡zujemy podproblemy rekurencyjnie lub,
gdy s¡ maªe i nie wymagaj¡ u»ycia rekurencji stosujemy bezpo±rednie metody (dno rekursji).
Poª¡cz: ª¡czymy rozwi¡zane podproblemy, aby otrzyma¢ rozwi¡zanie caªego problemu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Dziel i zwyci¦»aj
Projektowanie algorytmu metod¡ dziel i zwyci¦»aj:
Dziel: dzielimy problem na podproblemy. Zwyci¦»aj:
rozwi¡zujemy podproblemy rekurencyjnie lub,
gdy s¡ maªe i nie wymagaj¡ u»ycia rekurencji stosujemy bezpo±rednie metody (dno rekursji).
Poª¡cz: ª¡czymy rozwi¡zane podproblemy, aby otrzyma¢ rozwi¡zanie caªego problemu.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Mergesort = sortowanie przez scalanie tablicy A[1..n].
Dziel: dzielimy tablic¦ na dwie podtablice A[1..bn
2c]i A[bn2c +1..n], np.
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6].
Zwyci¦»aj: sortujemy otrzymane podtablice u»ywaj¡c rekurencyjnie sortowania przez scalanie:
[2, 4, 5, 6], [1, 2, 3, 6].
Poª¡cz: ª¡czymy posortowane podtablice w jedn¡ posortowan¡ tablic¦ (scalenie, merge):
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Mergesort = sortowanie przez scalanie tablicy A[1..n].
Dziel: dzielimy tablic¦ na dwie podtablice A[1..bn
2c]i A[bn2c +1..n], np.
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6].
Zwyci¦»aj: sortujemy otrzymane podtablice u»ywaj¡c rekurencyjnie sortowania przez scalanie:
[2, 4, 5, 6], [1, 2, 3, 6].
Poª¡cz: ª¡czymy posortowane podtablice w jedn¡ posortowan¡ tablic¦ (scalenie, merge):
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Mergesort = sortowanie przez scalanie tablicy A[1..n].
Dziel: dzielimy tablic¦ na dwie podtablice A[1..bn
2c]i A[bn2c +1..n], np.
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6].
Zwyci¦»aj: sortujemy otrzymane podtablice u»ywaj¡c rekurencyjnie sortowania przez scalanie:
[2, 4, 5, 6], [1, 2, 3, 6].
Poª¡cz: ª¡czymy posortowane podtablice w jedn¡ posortowan¡ tablic¦ (scalenie, merge):
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Mergesort = sortowanie przez scalanie tablicy A[1..n].
Dziel: dzielimy tablic¦ na dwie podtablice A[1..bn
2c]i A[bn2c +1..n], np.
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6].
Zwyci¦»aj: sortujemy otrzymane podtablice u»ywaj¡c rekurencyjnie sortowania przez scalanie:
[2, 4, 5, 6], [1, 2, 3, 6].
Poª¡cz: ª¡czymy posortowane podtablice w jedn¡ posortowan¡ tablic¦ (scalenie, merge):
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Peªen przebieg rekurencji:
[5, 2, 4, 6, 1, 3, 2, 6] [5, 2, 4, 6], [1, 3, 2, 6] [5, 2], [4, 6], [1, 3], [2, 6] [5], [2], [4], [6], [1], [3], [2], [6] dno [2, 5], [4, 6], [1, 3], [2, 6] scal [2, 4, 5, 6] [1, 2, 3, 6] scal [1, 2, 2, 3, 4, 5, 6, 6] scal
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Wej±cie:tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt dla p=1, r=n Mergesort(A, p, r) T (n) begin ifp < r then begin q := b(p + r)/2c; Mergesort(A, p, q); T (n/2) Mergesort(A, q+1, r); T (n/2) Merge(A, p, q, r); O(n) end end; MergeSort(A, 1, n);
Merge(A,p,q,r) scala podtablice A[p..q] i A[q + 1..r] w jedn¡ A[p..r]. Implementacja ¢wiczenie.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Wej±cie:tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt dla p=1, r=n Mergesort(A, p, r) T (n) begin ifp < r then begin q := b(p + r)/2c; Mergesort(A, p, q); T (n/2) Mergesort(A, q+1, r); T (n/2) Merge(A, p, q, r); O(n) end end; MergeSort(A, 1, n);
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Wej±cie:tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt dla p=1, r=n Mergesort(A, p, r) T (n) begin ifp < r then begin q := b(p + r)/2c; Mergesort(A, p, q); T (n/2) Mergesort(A, q+1, r); T (n/2) Merge(A, p, q, r); O(n) end end; MergeSort(A, 1, n);
Merge(A,p,q,r) scala podtablice A[p..q] i A[q + 1..r] w jedn¡ A[p..r]. Implementacja ¢wiczenie.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Wej±cie:tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt dla p=1, r=n Mergesort(A, p, r) T (n) begin ifp < r then begin q := b(p + r)/2c; Mergesort(A, p, q); T (n/2) Mergesort(A, q+1, r); T (n/2) Merge(A, p, q, r); O(n) end end; MergeSort(A, 1, n);
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Wej±cie:tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt dla p=1, r=n Mergesort(A, p, r) T (n) begin ifp < r then begin q := b(p + r)/2c; Mergesort(A, p, q); T (n/2) Mergesort(A, q+1, r); T (n/2) Merge(A, p, q, r); O(n) end end; MergeSort(A, 1, n);
Merge(A,p,q,r) scala podtablice A[p..q] i A[q + 1..r] w jedn¡ A[p..r]. Implementacja ¢wiczenie.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Wej±cie:tablica (ci¡g) n liczb A[1..n],
Wyj±cie: tablica A[1..n] skªadaj¡ca si¦ z elementów tablicy wej±ciowej, ale uporz¡d-kowana tak, »e A[1] ≤ A[2] ≤ . . . ≤ A[n].
Koszt dla p=1, r=n Mergesort(A, p, r) T (n) begin ifp < r then begin q := b(p + r)/2c; Mergesort(A, p, q); T (n/2) Mergesort(A, q+1, r); T (n/2) Merge(A, p, q, r); O(n) end end; MergeSort(A, 1, n);
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Funkcja kosztu speªnia równanie: T (n) = ( O(1), n = 1, 2T (n/2) + O(n), n > 1. Uproszczenie: T (n) = ( 2, n = 2, 2T (n/2) + n, n = 2k,k > 1.
Lemat. Rozwi¡zaniem powy»szego równania rekurencyjnego jest funkcja T (n) = n · logn.
Dowód. Indukcja wzgl¦dem k ≥ 1.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Funkcja kosztu speªnia równanie: T (n) = ( O(1), n = 1, 2T (n/2) + O(n), n > 1. Uproszczenie: T (n) = ( 2, n = 2, 2T (n/2) + n, n = 2k,k > 1.
Lemat. Rozwi¡zaniem powy»szego równania rekurencyjnego jest funkcja T (n) = n · logn.
Dowód. Indukcja wzgl¦dem k ≥ 1.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Funkcja kosztu speªnia równanie: T (n) = ( O(1), n = 1, 2T (n/2) + O(n), n > 1. Uproszczenie: T (n) = ( 2, n = 2, 2T (n/2) + n, n = 2k,k > 1.
Lemat. Rozwi¡zaniem powy»szego równania rekurencyjnego jest funkcja T (n) = n · logn.
Dowód. Indukcja wzgl¦dem k ≥ 1.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Funkcja kosztu speªnia równanie: T (n) = ( O(1), n = 1, 2T (n/2) + O(n), n > 1. Uproszczenie: T (n) = ( 2, n = 2, 2T (n/2) + n, n = 2k,k > 1.
Lemat. Rozwi¡zaniem powy»szego równania rekurencyjnego jest funkcja T (n) = n · logn.
Dowód. Indukcja wzgl¦dem k ≥ 1.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Mergesort
Funkcja kosztu speªnia równanie: T (n) = ( O(1), n = 1, 2T (n/2) + O(n), n > 1. Uproszczenie: T (n) = ( 2, n = 2, 2T (n/2) + n, n = 2k,k > 1.
Lemat. Rozwi¡zaniem powy»szego równania rekurencyjnego jest funkcja T (n) = n · logn.
Dowód. Indukcja wzgl¦dem k ≥ 1.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf niezorientowany (nieskierowany) = para G = (V , E) zbiorów sko«czonych:
V nazywamy zbioremwierzchoªków(w¦zªów) G,
E ⊆ { {u, v} : u, v ∈ V , u 6= v} nazywamy zbioremkraw¦dzi
G.
Def. Graf zorientowany(skierowany) = para G = (V , E) zbiorów sko«czonych:
V nazywamy zbioremwierzchoªków(w¦zªów) G,
E ⊆ { (u, v) : u, v ∈ V } = V × V nazywamy zbioremkraw¦dzi
(strzaªek) G.
W denicji grafu zorientowanego dopuszczamy strzaªki postaci (v, v). Nazywamy je p¦tlami(zaczepionymi w wierzchoªku v).
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf niezorientowany (nieskierowany) = para G = (V , E) zbiorów sko«czonych:
V nazywamy zbioremwierzchoªków(w¦zªów) G,
E ⊆ { {u, v} : u, v ∈ V , u 6= v} nazywamy zbioremkraw¦dzi
G.
Def. Graf zorientowany (skierowany) = para G = (V , E) zbiorów sko«czonych:
V nazywamy zbioremwierzchoªków(w¦zªów) G,
E ⊆ { (u, v) : u, v ∈ V } = V × V nazywamy zbioremkraw¦dzi
(strzaªek) G.
W denicji grafu zorientowanego dopuszczamy strzaªki postaci (v, v). Nazywamy je p¦tlami(zaczepionymi w wierzchoªku v).
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf niezorientowany (nieskierowany) = para G = (V , E) zbiorów sko«czonych:
V nazywamy zbioremwierzchoªków(w¦zªów) G,
E ⊆ { {u, v} : u, v ∈ V , u 6= v} nazywamy zbioremkraw¦dzi
G.
Def. Graf zorientowany (skierowany) = para G = (V , E) zbiorów sko«czonych:
V nazywamy zbioremwierzchoªków(w¦zªów) G,
E ⊆ { (u, v) : u, v ∈ V } = V × V nazywamy zbioremkraw¦dzi
(strzaªek) G.
W denicji grafu zorientowanego dopuszczamy strzaªki postaci (v, v). Nazywamy je p¦tlami(zaczepionymi w wierzchoªku v).
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf niezorientowany G = (V , E) (dla grafu zorientowanego denicje analogiczne).
Def.
wierzchoªki u, v ∈ V s¡s¡siednie, gdy {u, v} ∈ E,
kraw¦dzie e1,e2∈E s¡s¡siednie, gdy e1∩e26= ∅(maj¡
wspólny wierzchoªek),
wierzchoªek v ∈ V jestincydentny z kraw¦dzi¡ e ∈ E, gdy
v ∈ e,
gdy G jest zorientowany, to dla strzaªki e = (u, v) ∈ E
(oznaczanej czasem u → v), u nazywamy pocz¡tkiem, a v
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf niezorientowany G = (V , E) (dla grafu zorientowanego denicje analogiczne).
Def.
wierzchoªki u, v ∈ V s¡s¡siednie, gdy {u, v} ∈ E,
kraw¦dzie e1,e2∈E s¡s¡siednie, gdy e1∩e26= ∅(maj¡
wspólny wierzchoªek),
wierzchoªek v ∈ V jestincydentny z kraw¦dzi¡ e ∈ E, gdy
v ∈ e,
gdy G jest zorientowany, to dla strzaªki e = (u, v) ∈ E
(oznaczanej czasem u → v), u nazywamy pocz¡tkiem, a v
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf niezorientowany G = (V , E) (dla grafu zorientowanego denicje analogiczne).
Def.
wierzchoªki u, v ∈ V s¡s¡siednie, gdy {u, v} ∈ E, kraw¦dzie e1,e2∈E s¡s¡siednie, gdy e1∩e26= ∅(maj¡
wspólny wierzchoªek),
wierzchoªek v ∈ V jestincydentny z kraw¦dzi¡ e ∈ E, gdy
v ∈ e,
gdy G jest zorientowany, to dla strzaªki e = (u, v) ∈ E
(oznaczanej czasem u → v), u nazywamy pocz¡tkiem, a v
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf niezorientowany G = (V , E) (dla grafu zorientowanego denicje analogiczne).
Def.
wierzchoªki u, v ∈ V s¡s¡siednie, gdy {u, v} ∈ E, kraw¦dzie e1,e2∈E s¡s¡siednie, gdy e1∩e26= ∅(maj¡
wspólny wierzchoªek),
wierzchoªek v ∈ V jestincydentny z kraw¦dzi¡ e ∈ E, gdy
v ∈ e,
gdy G jest zorientowany, to dla strzaªki e = (u, v) ∈ E
(oznaczanej czasem u → v), u nazywamy pocz¡tkiem, a v
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf niezorientowany G = (V , E) (dla grafu zorientowanego denicje analogiczne).
Def.
wierzchoªki u, v ∈ V s¡s¡siednie, gdy {u, v} ∈ E, kraw¦dzie e1,e2∈E s¡s¡siednie, gdy e1∩e26= ∅(maj¡
wspólny wierzchoªek),
wierzchoªek v ∈ V jestincydentny z kraw¦dzi¡ e ∈ E, gdy
v ∈ e,
gdy G jest zorientowany, to dla strzaªki e = (u, v) ∈ E
(oznaczanej czasem u → v), u nazywamy pocz¡tkiem, a v
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Stopniem wierzchoªka v ∈ V nazywamy liczb¦ degG(v) := #{e ∈ E : v ∈ E}
Gdy G jest grafem zorientowanym to rozró»nia si¦stopie« wyj±ciowywierzchoªka v ∈ V :
out.degG(v) = deg+G(v) := #{w ∈ V : v → w ∈ E} orazstopie« wej±ciowy wierzchoªka v ∈ V :
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Stopniem wierzchoªka v ∈ V nazywamy liczb¦ degG(v) := #{e ∈ E : v ∈ E}
Gdy G jest grafem zorientowanym to rozró»nia si¦stopie« wyj±ciowywierzchoªka v ∈ V :
out.degG(v) = deg+G(v) := #{w ∈ V : v → w ∈ E} orazstopie« wej±ciowy wierzchoªka v ∈ V :
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Drogaw grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Drogaw grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Drogaw grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Drogaw grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Drogaw grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Droga w grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Droga w grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Droga w grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Droga w grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Droga w grae niezorientowanym G = (V , E) ci¡g wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e ej = {vj−1,vj}.
v0, vk -ko«cedrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
k =dªugo±¢drogi.
Def. Droga w grae zorientowanym G = (V , E) ci¡g
wierzchoªków i kraw¦dzi P = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V ,
ej ∈E, k ≥ 0, taki, »e ej = (vj−1,vj) (piszemy czasem
P = (e1, . . . ,ek)).
v0 pocz¡tek, vk koniecdrogi P,
dopuszczamy drogi trywialnepostaci P = (v0), v0∈V ,
czasem zakªada si¦, »e ej 6=el, dla j 6= l,
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. cie»ka (inaczej droga niezorientowana) w grae zorientowanym G = (V , E) ci¡g
W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e
ej = (vj−1,vj) lub ej = (vj,vj−1) (piszemy czasem
W = (e1, . . . ,ek)).
Def. Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae (zorientowanym lub nie). Wówczas
je»eli vi 6=vj dla ka»dych i 6= j, to P nazywamydrog¡ prost¡,
je»eli v0=vk to P nazywamydrog¡ zamkni¦t¡ lubcyklem,
cykl prosty= cykl + droga prosta.
Podobnie deniujemy±cie»k¦ prost¡i±cie»k¦ zamkni¦t¡(=cykl niezorientowany) oraz niezorientowany cykl prosty.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. cie»ka (inaczej droga niezorientowana) w grae zorientowanym G = (V , E) ci¡g
W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e
ej = (vj−1,vj) lub ej = (vj,vj−1) (piszemy czasem
W = (e1, . . . ,ek)).
Def. Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae (zorientowanym lub nie). Wówczas
je»eli vi 6=vj dla ka»dych i 6= j, to P nazywamydrog¡ prost¡,
je»eli v0=vk to P nazywamydrog¡ zamkni¦t¡ lubcyklem,
cykl prosty= cykl + droga prosta.
Podobnie deniujemy±cie»k¦ prost¡i±cie»k¦ zamkni¦t¡(=cykl niezorientowany) oraz niezorientowany cykl prosty.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. cie»ka (inaczej droga niezorientowana) w grae zorientowanym G = (V , E) ci¡g
W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e
ej = (vj−1,vj) lub ej = (vj,vj−1) (piszemy czasem
W = (e1, . . . ,ek)).
Def. Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae (zorientowanym lub nie). Wówczas
je»eli vi 6=vj dla ka»dych i 6= j, to P nazywamydrog¡ prost¡,
je»eli v0=vk to P nazywamydrog¡ zamkni¦t¡ lubcyklem,
cykl prosty= cykl + droga prosta.
Podobnie deniujemy±cie»k¦ prost¡i±cie»k¦ zamkni¦t¡(=cykl niezorientowany) oraz niezorientowany cykl prosty.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. cie»ka (inaczej droga niezorientowana) w grae zorientowanym G = (V , E) ci¡g
W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e
ej = (vj−1,vj) lub ej = (vj,vj−1) (piszemy czasem
W = (e1, . . . ,ek)).
Def. Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae (zorientowanym lub nie). Wówczas
je»eli vi 6=vj dla ka»dych i 6= j, to P nazywamydrog¡ prost¡,
je»eli v0=vk to P nazywamydrog¡ zamkni¦t¡ lubcyklem,
cykl prosty= cykl + droga prosta.
Podobnie deniujemy±cie»k¦ prost¡i±cie»k¦ zamkni¦t¡(=cykl niezorientowany) oraz niezorientowany cykl prosty.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. cie»ka (inaczej droga niezorientowana) w grae zorientowanym G = (V , E) ci¡g
W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e
ej = (vj−1,vj) lub ej = (vj,vj−1) (piszemy czasem
W = (e1, . . . ,ek)).
Def. Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae (zorientowanym lub nie). Wówczas
je»eli vi 6=vj dla ka»dych i 6= j, to P nazywamydrog¡ prost¡,
je»eli v0=vk to P nazywamydrog¡ zamkni¦t¡ lubcyklem,
cykl prosty= cykl + droga prosta.
Podobnie deniujemy±cie»k¦ prost¡i±cie»k¦ zamkni¦t¡(=cykl niezorientowany) oraz niezorientowany cykl prosty.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. cie»ka (inaczej droga niezorientowana) w grae zorientowanym G = (V , E) ci¡g
W = (v0,e1,v1,e2,v2, . . . ,ek,vk), vi ∈V , ej ∈E, k ≥ 0, taki, »e
ej = (vj−1,vj) lub ej = (vj,vj−1) (piszemy czasem
W = (e1, . . . ,ek)).
Def. Niech P = (v0,e1,v1,e2,v2, . . . ,ek,vk) b¦dzie drog¡ w grae (zorientowanym lub nie). Wówczas
je»eli vi 6=vj dla ka»dych i 6= j, to P nazywamydrog¡ prost¡,
je»eli v0=vk to P nazywamydrog¡ zamkni¦t¡ lubcyklem,
cykl prosty= cykl + droga prosta.
Podobnie deniujemy±cie»k¦ prost¡i±cie»k¦ zamkni¦t¡(=cykl niezorientowany) orazniezorientowany cykl prosty.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf niezorientowany G = (V , E) jestspójny, o ile dla ka»dych u, v ∈ V istnieje droga P o ko«cach u i v.
Def. Graf zorientowany G = (V , E) jestsªabo spójny, o ile dla ka»dych u, v ∈ V istnieje ±cie»ka P o ko«cach u i v.
Def. Graf zorientowany G = (V , E) jestsilnie spójny, o ile dla ka»dych u, v ∈ V istnieje droga P o pocz¡tku u i ko«cu v.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf niezorientowany G = (V , E) jestspójny, o ile dla ka»dych u, v ∈ V istnieje droga P o ko«cach u i v.
Def. Graf zorientowany G = (V , E) jestsªabo spójny, o ile dla ka»dych u, v ∈ V istnieje ±cie»ka P o ko«cach u i v.
Def. Graf zorientowany G = (V , E) jestsilnie spójny, o ile dla ka»dych u, v ∈ V istnieje droga P o pocz¡tku u i ko«cu v.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf niezorientowany G = (V , E) jestspójny, o ile dla ka»dych u, v ∈ V istnieje droga P o ko«cach u i v.
Def. Graf zorientowany G = (V , E) jestsªabo spójny, o ile dla ka»dych u, v ∈ V istnieje ±cie»ka P o ko«cach u i v.
Def. Graf zorientowany G = (V , E) jestsilnie spójny, o ile dla ka»dych u, v ∈ V istnieje droga P o pocz¡tku u i ko«cu v.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf H = (V0,E0)nazywamy podgrafem grafu G = (V , E),
o ile V0 ⊆V oraz E0 ⊆E.
Def. Podgraf H = (V0,E0) grafu G = (V , E) nazywamypeªnym,
o ile
∀u,v∈V0 {u, v} ∈ E ⇒ {u, v} ∈ E0
lub w wersji zorientowanej
∀u,v∈V0 (u, v) ∈ E ⇒ (u, v) ∈ E0.
Def. Dwa grafy G = (V , E) oraz H = (V0,E0)s¡ izomorczne,
gdy istnieje bijekcja f : V → V0 taka, »e dla ka»dych u, v ∈ V ,
mamy
{u, v} ∈ E ⇔ {f (u), f (v)} ∈ E0 (analogicznie dla wersji zorientowanej).
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf H = (V0,E0)nazywamy podgrafem grafu G = (V , E),
o ile V0 ⊆V oraz E0 ⊆E.
Def. Podgraf H = (V0,E0) grafu G = (V , E) nazywamypeªnym,
o ile
∀u,v∈V0 {u, v} ∈ E ⇒ {u, v} ∈ E0
lub w wersji zorientowanej
∀u,v∈V0 (u, v) ∈ E ⇒ (u, v) ∈ E0.
Def. Dwa grafy G = (V , E) oraz H = (V0,E0)s¡ izomorczne,
gdy istnieje bijekcja f : V → V0 taka, »e dla ka»dych u, v ∈ V ,
mamy
{u, v} ∈ E ⇔ {f (u), f (v)} ∈ E0 (analogicznie dla wersji zorientowanej).
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf H = (V0,E0)nazywamy podgrafem grafu G = (V , E),
o ile V0 ⊆V oraz E0 ⊆E.
Def. Podgraf H = (V0,E0) grafu G = (V , E) nazywamypeªnym,
o ile
∀u,v∈V0 {u, v} ∈ E ⇒ {u, v} ∈ E0
lub w wersji zorientowanej
∀u,v∈V0 (u, v) ∈ E ⇒ (u, v) ∈ E0.
Def. Dwa grafy G = (V , E) oraz H = (V0,E0)s¡ izomorczne,
gdy istnieje bijekcja f : V → V0 taka, »e dla ka»dych u, v ∈ V ,
mamy
{u, v} ∈ E ⇔ {f (u), f (v)} ∈ E0 (analogicznie dla wersji zorientowanej).
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf nieskierowany G = (V , E).
Def. Mówimy, »e v ∈ V jestosi¡galnyz u ∈ V , gdy w G istnieje droga P o ko«cach u, v.
Obserwacja: Jest osi¡galny jest relacj¡ zwrotn¡, symetryczn¡ i przechodni¡, czyli relacj¡ równowa»no±ci w V .
Def. Spójn¡ skªadow¡(inaczej skªadow¡ spójno±ciw grae G) nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi¡galny.
Uwaga. Spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf nieskierowany G = (V , E).
Def. Mówimy, »e v ∈ V jestosi¡galnyz u ∈ V , gdy w G istnieje droga P o ko«cach u, v.
Obserwacja: Jest osi¡galny jest relacj¡ zwrotn¡, symetryczn¡ i przechodni¡, czyli relacj¡ równowa»no±ci w V .
Def. Spójn¡ skªadow¡(inaczej skªadow¡ spójno±ciw grae G) nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi¡galny.
Uwaga. Spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf nieskierowany G = (V , E).
Def. Mówimy, »e v ∈ V jestosi¡galnyz u ∈ V , gdy w G istnieje droga P o ko«cach u, v.
Obserwacja: Jest osi¡galny jest relacj¡ zwrotn¡, symetryczn¡ i przechodni¡, czyli relacj¡ równowa»no±ci w V .
Def. Spójn¡ skªadow¡ (inaczej skªadow¡ spójno±ciw grae G) nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi¡galny.
Uwaga. Spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf nieskierowany G = (V , E).
Def. Mówimy, »e v ∈ V jestosi¡galnyz u ∈ V , gdy w G istnieje droga P o ko«cach u, v.
Obserwacja: Jest osi¡galny jest relacj¡ zwrotn¡, symetryczn¡ i przechodni¡, czyli relacj¡ równowa»no±ci w V .
Def. Spójn¡ skªadow¡ (inaczej skªadow¡ spójno±ciw grae G) nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi¡galny.
Uwaga. Spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Ustalmy graf nieskierowany G = (V , E).
Def. Mówimy, »e v ∈ V jestosi¡galnyz u ∈ V , gdy w G istnieje droga P o ko«cach u, v.
Obserwacja: Jest osi¡galny jest relacj¡ zwrotn¡, symetryczn¡ i przechodni¡, czyli relacj¡ równowa»no±ci w V .
Def. Spójn¡ skªadow¡ (inaczej skªadow¡ spójno±ciw grae G) nazywamy peªny podgraf grafu G o wierzchoªkach z dowolnej klasy abstrakcji relacji jest osi¡galny.
Uwaga. Spójna skªadowa jest maksymalnym spójnym podgrafem peªnym grafu G.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf peªnyKn (dla n ∈ N) = graf taki, »e |V (Kn)| =n oraz dla ka»dych u, v ∈ V (Kn), {u, v} ∈ E(Kn).
Def. Graf G = (V , E) nazywamydwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2 =V ) taki, »e
∀{u,v}∈E [(u ∈ V1 ∧ v ∈ V2) ∨ (v ∈ V1 ∧ u ∈ V2)]. Def. Graf G = (V , E) nazywamypeªnym dwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2 =V ) taki, »e
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf peªnyKn (dla n ∈ N) = graf taki, »e |V (Kn)| =n oraz dla ka»dych u, v ∈ V (Kn), {u, v} ∈ E(Kn).
Def. Graf G = (V , E) nazywamydwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2 =V ) taki, »e
∀{u,v}∈E [(u ∈ V1 ∧ v ∈ V2) ∨ (v ∈ V1 ∧ u ∈ V2)].
Def. Graf G = (V , E) nazywamypeªnym dwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2 =V ) taki, »e
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Teoria grafów
Def. Graf peªnyKn (dla n ∈ N) = graf taki, »e |V (Kn)| =n oraz dla ka»dych u, v ∈ V (Kn), {u, v} ∈ E(Kn).
Def. Graf G = (V , E) nazywamydwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2 =V ) taki, »e
∀{u,v}∈E [(u ∈ V1 ∧ v ∈ V2) ∨ (v ∈ V1 ∧ u ∈ V2)]. Def. Graf G = (V , E) nazywamypeªnym dwudzielnym, je»eli istnieje podziaª V na dwa rozª¡czne niepuste podzbiory V1,V2 (tj. V1∪V2 =V ) taki, »e
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Reprezentacja grafu
Ustalmy graf nieskierowany G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}.
Sposoby reprezentowania grafu w komputerze:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ e j, 1, i ∈ ej.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Reprezentacja grafu
Ustalmy graf nieskierowany G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}.
Sposoby reprezentowania grafu w komputerze:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ e j, 1, i ∈ ej.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Reprezentacja grafu
Ustalmy graf nieskierowany G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}.
Sposoby reprezentowania grafu w komputerze:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ e j, 1, i ∈ ej.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Reprezentacja grafu
Ustalmy graf nieskierowany G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}.
Sposoby reprezentowania grafu w komputerze:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ e j, 1, i ∈ ej.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Reprezentacja grafu
Ustalmy graf nieskierowany G = (V , E), V = {1, . . . , n}, E = {e1, . . . ,em}.
Sposoby reprezentowania grafu w komputerze:
Macierz s¡siedztwa: A = A(G) ∈ Mn×n(Z), Ai,j =
0, {i, j} /∈ E, 1, {i, j} ∈ E.
Listy s¡siedztwa: tablica L[1..n], gdzie L[i] = wska¹nik do listy s¡siadów wierzchoªka i. Lista kraw¦dzi: [[v1 1,v21], [v12,v22], . . . , [v1m,v2m]], gdzie ei = {v1i,v2i}. Macierz incydencji: B = B(G) ∈ Mn×m(Z), Bi,j = 0, i /∈ e j, 1, i ∈ ej.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo(drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny.
Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny,
G jest spójny i |E| = |V | − 1, G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Grafacykliczny = graf nie zawieraj¡cy cykli.
Def. Drzewo (drzewo wolne) = graf spójny i acykliczny. Twierdzenie. G = (V , E) graf niezorientowany. Nast¦puj¡ce warunki s¡ równowa»ne:
G jest drzewem,
dla ka»dych u, v ∈ V istnieje dokªadnie jedna droga P o ko«cach u, v,
G jest spójny, a po usuni¦ciu dowolnej kraw¦dzi nie jest spójny, G jest spójny i |E| = |V | − 1,
G jest acykliczny i |E| = |V | − 1,
G jest acykliczny, lecz po dodaniu do E jakiejkolwiek kraw¦dzi powstaªy graf posiada cykl.
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Drzewo z korzeniem = para (T , r), gdzie T = (V , E) jest drzewem, a r ∈ V wyró»nionym wierzchoªkiem, zwanym
korzeniem.
Podstawowe poj¦cia:
przodek (poprzednik) wierzchoªka,
potomek(nast¦pnik) wierzchoªka,
syn (bezpo±redni nast¦pnik) wierzchoªka,
ojciec(bezpo±redni poprzednik) wierzchoªka,
brat wierzchoªka,
li±ciedrzewa,
stopie«wierzchoªka = liczba synów,
gª¦boko±¢ (poziom) wierzchoªka v = dªugo±¢ drogi od r do v (ozn. h(v) = hT(v)),
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Drzewo z korzeniem = para (T , r), gdzie T = (V , E) jest drzewem, a r ∈ V wyró»nionym wierzchoªkiem, zwanym
korzeniem.
Podstawowe poj¦cia:
przodek (poprzednik) wierzchoªka,
potomek(nast¦pnik) wierzchoªka,
syn(bezpo±redni nast¦pnik) wierzchoªka,
ojciec(bezpo±redni poprzednik) wierzchoªka,
brat wierzchoªka,
li±ciedrzewa,
stopie«wierzchoªka = liczba synów,
gª¦boko±¢ (poziom) wierzchoªka v = dªugo±¢ drogi od r do v (ozn. h(v) = hT(v)),
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Drzewo z korzeniem = para (T , r), gdzie T = (V , E) jest drzewem, a r ∈ V wyró»nionym wierzchoªkiem, zwanym
korzeniem.
Podstawowe poj¦cia:
przodek (poprzednik) wierzchoªka,
potomek(nast¦pnik) wierzchoªka,
syn(bezpo±redni nast¦pnik) wierzchoªka,
ojciec(bezpo±redni poprzednik) wierzchoªka,
brat wierzchoªka,
li±ciedrzewa,
stopie«wierzchoªka = liczba synów,
gª¦boko±¢ (poziom) wierzchoªka v = dªugo±¢ drogi od r do v (ozn. h(v) = hT(v)),
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Drzewo z korzeniem = para (T , r), gdzie T = (V , E) jest drzewem, a r ∈ V wyró»nionym wierzchoªkiem, zwanym
korzeniem.
Podstawowe poj¦cia:
przodek (poprzednik) wierzchoªka,
potomek(nast¦pnik) wierzchoªka,
syn(bezpo±redni nast¦pnik) wierzchoªka,
ojciec(bezpo±redni poprzednik) wierzchoªka,
brat wierzchoªka,
li±ciedrzewa,
stopie«wierzchoªka = liczba synów,
gª¦boko±¢ (poziom) wierzchoªka v = dªugo±¢ drogi od r do v (ozn. h(v) = hT(v)),
Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie
Drzewa
Def. Drzewo z korzeniem = para (T , r), gdzie T = (V , E) jest drzewem, a r ∈ V wyró»nionym wierzchoªkiem, zwanym
korzeniem.
Podstawowe poj¦cia:
przodek (poprzednik) wierzchoªka,
potomek(nast¦pnik) wierzchoªka,
syn(bezpo±redni nast¦pnik) wierzchoªka,
ojciec(bezpo±redni poprzednik) wierzchoªka,
brat wierzchoªka,
li±ciedrzewa,
stopie«wierzchoªka = liczba synów,
gª¦boko±¢ (poziom) wierzchoªka v = dªugo±¢ drogi od r do v (ozn. h(v) = hT(v)),