• Nie Znaleziono Wyników

Część 2

N/A
N/A
Protected

Academic year: 2021

Share "Część 2"

Copied!
426
0
0

Pełen tekst

(1)

Rekurencja Grafy Drzewa Kopce Projektowanie Zachªannie Dynamicznie

Algorytmy i struktury danych

Cz¦±¢ druga

(2)

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.

(3)

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.

(4)

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.

(5)

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(...);

(6)

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,

(7)

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,

(8)

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;

(9)

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);

(10)

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);

(11)

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.

(12)

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.

(13)

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.

(14)

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.

(15)

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,

(16)

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,

(17)

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,

(18)

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,

(19)

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,

(20)

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,

(21)

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).

(22)

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).

(23)

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).

(24)

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).

(25)

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).

(26)

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).

(27)

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).

(28)

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).

(29)

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.

(30)

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.

(31)

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.

(32)

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.

(33)

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):

(34)

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):

(35)

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):

(36)

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):

(37)

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

(38)

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

(39)

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

(40)

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

(41)

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

(42)

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

(43)

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

(44)

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.

(45)

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);

(46)

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.

(47)

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);

(48)

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.

(49)

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);

(50)

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. 

(51)

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. 

(52)

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. 

(53)

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. 

(54)

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. 

(55)

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).

(56)

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).

(57)

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).

(58)

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 

(59)

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 

(60)

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 

(61)

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 

(62)

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 

(63)

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 :

(64)

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 :

(65)

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,

(66)

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,

(67)

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,

(68)

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,

(69)

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,

(70)

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,

(71)

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,

(72)

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,

(73)

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 ,

(74)

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,

(75)

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.

(76)

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.

(77)

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.

(78)

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.

(79)

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.

(80)

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.

(81)

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.

(82)

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.

(83)

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.

(84)

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) 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).

(85)

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) 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).

(86)

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) 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).

(87)

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.

(88)

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.

(89)

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.

(90)

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.

(91)

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.

(92)

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

(93)

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

(94)

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

(95)

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.

(96)

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.

(97)

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.

(98)

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.

(99)

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.

(100)

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.

(101)

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.

(102)

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.

(103)

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.

(104)

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.

(105)

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.

(106)

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.

(107)

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.

(108)

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.

(109)

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)),

(110)

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)),

(111)

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)),

(112)

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)),

(113)

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)),

Cytaty

Powiązane dokumenty

[r]

164. Wśród poniższych sześciu szeregów wskaż szereg zbieżny, a następnie udowodnij jego zbieżność.. musi być rozbieżny). N - może być zbieżny lub

[r]

Rozwiązania zadań należy starannie uzasadniać i wpisać do zeszytu zadań domowych.. Proszę wybrać

Umieszczenie przysłówka „bezwzględnie” w nawiasie oznacza, że wszystkie lub prawie wszystkie wyrazy szeregu mają ten sam znak i zbieżność bezwzględna jest

[r]

[r]

Semestr zimowy Kolokwium próbne. Javier