Vous êtes sur la page 1sur 80

Teoretyczne podstawy

informatyki
Repetytorium:
informacja
algorytmy,
modele danych

Prof. dr hab. Elbieta Richter-Ws

Informatyka: mechanizacja abstrakcji


Zasadniczo jednak informatyka jest

nauk o abstrakcji , czyli nauk o tworzeniu waciwego


modelu reprezentujcego problem i wynajdowaniu
odpowiedniej techniki mechanicznego jego rozwizywania

Informatycy tworz abstrakcje rzeczywistych problemw w


formach ktre mog by rozumiane i przetwarzane w pamici
komputera

Abstrakcja

oznacza bdzie pewne uproszczenie, zastpienie skomplikowanych i


szczegowych okolicznoci wystpujcych w wiecie rzeczywistym
zrozumiaym modelem umoliwiajcym rozwizanie naszego problemu.
Oznacza to e abstrahujemy od szczegw ktre nie maja wpywu lub
maj minimalny wpyw na rozwizanie problemu. Opracowanie
odpowiedniego modelu uatwia zajcie si istot problemu.

Prof. dr hab. Elbieta Richter-Ws

2
2

8.01.2013

Informatyka: mechanizacja abstrakcji

modele danych: abstrakcje wykorzystywane do


opisywania problemw

struktury danych: konstrukcje jzyka programowania


wykorzystywane do reprezentowania modelw danych.
Przykadowo jzyk C udostpnia wbudowane abstrakcje
takie jak struktury czy wskaniki, ktre umoliwiaj
reprezentowanie skomplikowanych abstrakcji takich jak
grafy

algorytmy: techniki wykorzystywane do otrzymywania


rozwiza na podstawie operacji wykonywanych na
danych reprezentowanych przez abstrakcje modelu
danych, struktury danych lub na inne sposoby

Prof. dr hab. Elbieta Richter-Ws

3
3

8.01.2013

Informacja i zasady jej zapisu

Prof.
Prof. drdrhab.
hab.
Elbieta
Elbieta
Richter-Ws
Richter-Ws

44

8.01.2013

Jednostka informacji: bit


Podstawow jednostk informacji jest bit, oznaczany te
poprzez b(w ang. kawaek, skrt od binary digit, czyli cyfra
dwjkowa).
Bit jest to podstawowa elementarna jednostka
informacji: wystarczajca do zakomunikowania jednego z co
najwyej dwch jednakowo prawdopodobnych zdarze.
Bit stanowi podstaw zapisu informacji w rnych typach
pamici komputera. Wszystkie inne jednostki skadaj si z
jego wielokrotnoci.
Bit przyjmuje jedn z dwch wartoci, ktre zwykle oznacza
si jako 0 lub 1. Jest to oznaczenie stosowane w
matematyce (warto logiczna: 0 fasz, 1 - prawda)
oraz przy opisie informacji przechowywanej w pamici
komputera i opisie sposobw kodowania informacji.
Prof. dr hab. Elbieta Richter-Ws

5
5

8.01.2013

Bajt
Jest to najmniejsza adresowalna jednostka informacji pamici
komputerowej, skadajca si z bitw, w praktyce przyjmuje
si e jeden bajt to 8 bitw (zostao to uznane za standard w
1964 r.).
Jeden bajt moe reprezentowa zatem 28 = 256 rnych
wartoci, ktre mog oznacza zapisywane informacje.
Bajt oznaczany jest poprzez B.
Stosowanie przedrostkw kilo, mega, giga itp. jako do
okrelania odpowiednich potg liczby dwa (np. 210) jest
niezgodne z wytycznymi ukadu SI (np. kilo oznacza 1000, a
nie 1024).
W celu odrnienia przedrostkw o mnoniku 1000 od
przedrostkw o mnoniku 1024 (210), w styczniu 1997r.
pojawia si propozycja ujednoznacznienia opracowana przez
IEC (ang. International Electrotechnical Commission)
polegajca na dodawaniu litery "i" po symbolu przedrostka
dwjkowego, oraz "bi" po jego nazwie.
Prof. dr hab. Elbieta Richter-Ws

6
6

8.01.2013

Wielokrotnoci bajtw

Przedrostki dziesitne (SI)

Przedrostki binarne (IEC)

Nazwa

Symbol

Mnonik

Nazwa

Symbol

Mnonik

Kilobajt

kB / KB

103 = 10001

Kibibajt

KiB

210 = 10241

Megabajt

MB

106 = 10002

Mebibajt

MiB

220 = 10242

Gigabajt

GB

109 = 10003

Gibibajt

GiB

230 = 10243

Terabajt

TB

1012 = 10004

Tebibajt

TiB

240 = 10244

Prof. dr hab. Elbieta Richter-Ws

7
7

8.01.2013

Systemy liczbowe w informatyce


Z racji reprezentacji liczb w pamici komputerw za
pomoc bitw, najbardziej naturalnym systemem w
informatyce jest system dwjkowy.
Ze wzgldu na specyfik architektury komputerw,
gdzie czsto najszybszy dostp jest do adresw
parzystych, albo podzielnych przez 4, 8 czy 16,
czsto uywany jest szesnastkowy system
liczbowy. Sprawdza si on szczeglnie przy zapisie
duych liczb takich jak adresy pamici, zakresy
parametrw itp.
Prof. dr hab. Elbieta Richter-Ws

8
8

8.01.2013

System zmiennopozycyjny
Kad niezerow liczb rzeczywist
reprezentujemy za pomoc przyblienia
wymiernego w postaci pary (m, c), takich e:
m [-1, -)

( , 1]

m jest mantys, za c jest cech. Interpretacja


takiej reprezentacji wyraa si wzorem:
x=mP

Oczywicie w naszym przypadku P = 2 (podstawa


systemu)
System ten, umoliwia zapis liczb rzeczywistych z
ustalonym bdem wzgldnym.
Prof. dr hab. Elbieta Richter-Ws

9
9

8.01.2013

System zmiennopozycyjny
Liczba binarna zapisana w postaci cecha mantysa na dwch
bajtach:
Cecha
Mantysa
0000001111000000

Tutaj: c = 3, m = - 1.
W praktyce zwykle na cech przeznaczamy jeden bajt, na
mantys minimum trzy bajty.
Ilo bajtw przeznaczonych na cech decyduje o zakresie.
Ilo bajtw przeznaczona na mantys decyduje o bdzie.

Liczby w mantysie s kodowane w systemie znak modu.


Za dla cechy w systemie uzupenieniowym.
Prof. dr hab. Elbieta Richter-Ws

10
10

8.01.2013

Bd obliczeniowy
Bd bezwzgldny: rnica midzy wartoci
zmierzona/obliczona a wartoci dokadn
W systemie staopozycyjnym obliczenia s
wykonywane ze staym max bdem bezwzgldnym

Bd wzgldny: bd bezwzgldny podzielony przez


warto dokadn

W systemie zmiennopozycyjnym obliczenia s


wykonywane ze staym max bdem wzgldnym
Prof. dr hab. Elbieta Richter-Ws

11

8.01.2013

Struktury danych i
algorytmy

Prof.
Prof. drdrhab.
hab.
Elbieta
Elbieta
Richter-Ws
Richter-Ws

12
12

8.01.2013

Struktury danych i algorytmy


Struktury danych to narzdzia do
reprezentowania informacji ktra ma by
przetworzona przez program komputerowy,
Algorytmy to przepisy wykonania czynnoci
niezbdnych do jej przetworzenia.
Wybr algorytmu do rozwizania konkretnego
problemu programistycznego pomaga w ustaleniu,
jak struktur danych naleaoby uy, ale i
odwrotnie wybrana struktura danych ma
ogromny wpyw na szczegy realizacji i
efektywnoci algorytmu.
Prof. dr hab. Elbieta Richter-Ws

13

8.01.2013

Typy danych i struktury danych


Interesuj nas sposoby w jaki algorytmy mog
organizowa, zapamitywa i zmienia zbiory
danych oraz siga do nich.
Zmienne czyli pudelka w ktrych chwilowo
przechowujemy jak warto,
Wektory,
Listy,
Tablice czyli tabele (macierze), w ktrych to moemy
odwoywa si do indeksw,
Kolejki i stosy,
Drzewa, czyli hierarchiczne uoenie danych,
Zbiory. Grafy. Relacje.
Prof. dr hab. Elbieta Richter-Ws

14

8.01.2013

Sposoby zapisu algorytmu


Najprostszy sposb zapisu to zapis sowny
Pozwala okreli kierunek dziaa i odpowiedzie na pytanie, czy
zagadnienie jest moliwe do rozwizania.

Bardziej konkretny zapis to lista krokw


Staramy si zapisa kolejne operacje w postaci kolejnych
krokw ktre naley wykona.

Budowa listy krokw obejmuje nastpujce elementy:


sformuowanie zagadnienia (zadanie algorytmu),
okrelenie zbioru danych potrzebnych do rozwizania
zagadnienia (okrelenie czy zbir danych jest waciwy),
okrelenie przewidywanego wyniku (wynikw): co chcemy
otrzyma i jakie mog by warianty rozwizania,
zapis kolejnych ponumerowanych krokw, ktre naley
wykona, aby przej od punktu pocztkowego do kocowego.

Bardzo wygodny zapis to zapis graficzny, np:


Schematy blokowe i grafy.

Prof. dr hab. Elbieta Richter-Ws

15

8.01.2013

Rodzaje algorytmw
Algorytmy mona dzieli ze wzgldu na czas
dziaania.
Algorytm liniowy:
Ma posta cigu krokw ktrych jest liniowa ilo (np.
staa albo proporcjonalna do liczby danych) ktre
musz zosta bezwarunkowo wykonane jeden po drugim.
Algorytm taki nie zawiera adnych warunkw ani
rozgazie: zaczyna si od podania zestawu danych,
nastpnie wykonywane s kolejne kroki wykonawcze, a
dochodzimy do wyniku

Prof. dr hab. Elbieta Richter-Ws

16

8.01.2013

Rodzaje algorytmw
Algorytm z rozgazieniem:
Wikszo algorytmw zawiera rozgazienia

bdce efektem sprawdzania warunkw. Wyraenia


warunkowe umoliwiaj wykonanie zadania dla
wielu wariantw danych i rozwaanie rnych
przypadkw.
Powtarzanie rnych dziaa ma dwojak posta:
liczba powtrze jest z gry okrelona (przed

rozpoczciem cyklu), alg. najczciej zwizany z


dziaaniami na macierzach,
liczba powtrze jest nieznana (zaley od spenienia
pewnego warunku), alg. najczciej zwizany z
obliczeniami typu iteracyjnego.
Prof. dr hab. Elbieta Richter-Ws

17

8.01.2013

Algorytmy dziel i zwyciaj


Dzielimy problem na mniejsze czci tej samej
postaci co pierwotny.
Teraz te pod-problemy dzielimy dalej na coraz
mniejsze, uywajc tej samej metody, a rozmiar
problemu stanie si tak may, e rozwizanie
bdzie oczywiste lub bdzie mona uy jakiej
innej efektywnej metody rozwizania.
Rozwizania wszystkich pod-problemw musz
by poczone w celu utworzenia rozwizania
caego problemu.
Metoda zazwyczaj implementowana z
zastosowaniem technik rekurencyjnych.
Prof. dr hab. Elbieta Richter-Ws

18

8.01.2013

Algorytmy oparte na programowaniu


dynamicznym
Mona stosowa
wwczas, kiedy problem
daje si podzieli na wiele
pod-problemw,
moliwych do
zakodowania w jedno-,
dwu- lub wielowymiarowej
tablicy, w taki sposb e w
pewnej okrelonej
kolejnoci mona je
wszystkie (a wic i cay
problem) efektywnie
rozwiza.
Prof. dr hab. Elbieta Richter-Ws

Jak oblicza cig Fibonacciego?


1
jeli i = 1
F(i) = 1
jeli i = 2
F(i-2)+F(i-1) jeli i > 2

Aby obliczy F(n), warto F(k),


gdzie k<n musimy wyliczy F(n-k)
razy.
Liczba ta ronie wykadniczo.
Korzystnie jest wic zachowa
(zapamita w tablicy) wyniki
wczeniejszych oblicze (tu: F(k)).
19

8.01.2013

Algorytmy z powrotami
Przykadami tego typu algorytmw s gry.
Czsto moemy zdefiniowa jaki problem jako
poszukiwanie jakiego rozwizania wrd wielu moliwych
przypadkw.
Dana jest pewna przestrze stanw, przy czym stan jest
to sytuacja stanowica rozwizanie problemu albo mogca
prowadzi do rozwizania oraz sposb przechodzenia z
jednego stanu do drugiego.
Czasami mog istnie stany ktre nie prowadz do
rozwizania.

Prof. dr hab. Elbieta Richter-Ws

20

8.01.2013

Algorytmy z powrotami
Metoda powrotw
Wymaga zapamitania wszystkich wykonanych ruchw
czy te wszystkich odwiedzonych stanw aby moliwe byo
cofanie posuni.
Stanw mog by tysice lub miliony wic bezporednie
zastosowanie metody powrotw, mogce doprowadzi do
odwiedzenia wszystkich stanw, moe by zbyt kosztowne.
Inteligentny wybr nastpnego posunicia, funkcja
oceniajca, moe znacznie poprawi efektywno
algorytmu.
Np. aby unikn przegldania nieistotnych fragmentw
przestrzeni stanw.

Prof. dr hab. Elbieta Richter-Ws

21

8.01.2013

Wybr algorytmu
Regu jest e naley implementowa algorytmy
najprostsze, ktre wykonuj okrelone zadanie.
Prosty algorytm to
atwiejsza implementacja, czytelniejszy kod
atwo testowania
atwo pisania dokumentacji,.

Jeli program ma dziaa wielokrotnie, jego


wydajno i wykorzystywany algorytm staj si
bardzo wane.
Bdy zaokrgle, powstajce przy reprezentacji
liczb, a take przy wykonywaniu dziaa na nich
rozwiny si w samodzielna dziedzin tzw. analiza
numeryczna.

Prof. dr hab. Elbieta Richter-Ws

22

8.01.2013

Efektywno algorytmu
Testy wzorcowe:
Podczas porwnywania dwch lub wicej programw
zaprojektowanych do wykonywania tego samego zadania,
opracowujemy niewielki zbir typowych danych
wejciowych ktre mog posuy jako dane wzorcowe
(ang. benchmark).
Powinny by one reprezentatywne i zakada si e
program dobrze dziaajcy dla danych wzorcowych bdzie
te dobrze dziaa dla wszystkich innych danych.
Np. test wzorcowy umoliwiajcy porwnanie algorytmw
sortujcych moe opiera si na jednym maym zbiorze
danych, np. zbir pierwszych 20 cyfr liczby ; jednym
rednim, np. zbir kodw pocztowych wojewdztwa
krakowskiego; oraz na duym zbiorze takim jak zbir
numerw telefonw z obszaru Krakowa i okolic.
Przydatne jest te sprawdzenie jak algorytm dziaa dla
cigu ju posortowanego (czsto dziaaj kiepsko).
Prof. dr hab. Elbieta Richter-Ws

23

8.01.2013

Efektywno algorytmu
Czas dziaania:
Oznaczamy przez funkcje T(n) liczb jednostek czasu,
ktre zajmuje wykonanie programu lub algorytmu w
przypadku problemu o rozmiarze n.
Funkcje te nazywamy czasem dziaania. Do czsto
czas dziaania zaley od konkretnych danych wejciowych,
nie tylko ich rozmiaru. W takim przypadku, funkcje T(n)
definiuje si jako najmniej korzystny przypadek z
punktu widzenia kosztw czasowych. Inn wyznaczan
wielkoci jest te czas redni, czyli redni dla rnych
danych wejciowych.

Prof. dr hab. Elbieta Richter-Ws

24

8.01.2013

Modele danych

Prof.
Prof. drdrhab.
hab.
Elbieta
Elbieta
Richter-Ws
Richter-Ws

25
25

8.01.2013

Modele danych
Modele danych s to abstrakcje wykorzystywane do
opisywania problemw.
W informatyce wyrniamy zazwyczaj dwa aspekty:
Wartoci ktre nasz obiekt moe przyjmowa.
Przykadowo wiele modeli danych zawiera obiekty przechowujce
wartoci cakowitoliczbowe. Ten aspekt modelu jest statyczny;
okrela bowiem wycznie grup wartoci przyjmowanych przez
obiekt.

Operacje na danych.
Przykadowo stosujemy zazwyczaj operacje dodawania liczb
cakowitych. Ten aspekt modelu nazywamy dynamicznym;
okrela bowiem metody wykorzystywane do operowania
wartociami oraz tworzenia nowych wartoci.

Badanie modeli danych, ich waciwoci oraz


sposobw waciwego ich wykorzystania stanowi jedno
z podstawowych zagadnie informatyki.
Prof. dr hab. Elbieta Richter-Ws

26

8.01.2013

Modele danych jzykw


programowania
Kady jzyk programowania zawiera wasny
model danych, ktry zazwyczaj istotnie rni si
od modeli oferowanych przez inne jzyki.
Podstawowa zasada realizowana przez
wikszo jzykw programowania w odniesieniu
do modeli danych okrela, e kady program
ma dostp do pudeek, ktre traktujemy
jako obszary pamici.
Kade pudeko ma swj typ, np. int, char.
Wartoci przechowywane w pudekach nazywamy czsto
obiektami danych.
Moemy teraz nadawa nazwy wykorzystywanym
pudekom. W oglnoci nazwa jest dowolnym
wyraeniem wskazujcym na pudeko.
Prof. dr hab. Elbieta Richter-Ws

27

8.01.2013

Modele danych jzykw programowania


Bardzo wane s te modele danych, ktre nie
s czci jzyka programowania, takie jak listy,
drzewa, grafy, zbiory.
Np. w jzyku matematycznym, lista jest cigiem
n elementw, ktry zapisujemy jako (a1,a2,
,an). Do zbioru operacji wykonywanych na
listach nale:
tworzenie listy,
wstawianie nowego elementu do listy,
usuwanie elementu z listy,
czenie list.

Prof. dr hab. Elbieta Richter-Ws

28

8.01.2013

Modele danych jzykw programowania


Podstawowe typy danych w jzyku programowania C
to:

liczby cakowite, liczby zmiennoprzecinkowe,


znaki,
tablice,
struktury,
wskaniki.

Wszystkie te pojcia to statyczne elementy modelu


danych.
Dopuszczalne operacje na tych danych to:
typowe operacje arytmetyczne na liczbach cakowitych i
zmiennoprzecinkowych,
operacje dostpu do elementw tablic i struktur,
oraz wyuskiwanie wskanikw czyli znajdywanie obiektw przez
nie wskazywanych.

Te operacje to dynamiczne elementy modelu


danych.
Prof. dr hab. Elbieta Richter-Ws
29

8.01.2013

Modele danych jzykw programowania


Bardzo wane s te modele danych, ktre nie
s czci jzyka programowania, takie jak listy,
drzewa, grafy, zbiory.
Np. w jzyku matematycznym, lista jest cigiem
n elementw, ktry zapisujemy jako (a1,a2,
,an). Do zbioru operacji wykonywanych na
listach nale:
tworzenie listy,
wstawianie nowego elementu do listy,
usuwanie elementu z listy,
czenie list.

Prof. dr hab. Elbieta Richter-Ws

30

8.01.2013

LISTY

Listy nale do najbardziej podstawowych


modeli danych wykorzystywanych w
programach komputerowych.

Prof. dr hab. Elbieta Richter-Ws

31

8.01.2013

Struktura danych lista jednokierunkowa


Najprostszym sposobem implementacji listy jest
wykorzystanie jednokierunkowej listy komrek. Kada z
komrek skada si z dwch pl, jedno zawiera element listy,
drugie zawiera wskanik do nastpnej komrki listy
jednokierunkowej.
L

a1

a2

an

Lista jednokierunkowa L = (a1, a2, , an).


Dla kadego elementu istnieje dokadnie jedna komrka; element ai
znajduje si w polu i-tej komrki.
Wskanik w i-tej komrce wskazuje na i+1 komrk, dla i= 1, 2, ,
n-1.
Wskanik w ostatniej komrce jest rwny NULL i oznacza koniec
listy.
Poza list wykorzystujemy wskanik L, ktry wskazuje na pierwsza
komrk listy. Gdyby lista bya pusta L = NULL.
Dla kadej komrki znamy wskanik nastpnej (ang. next).
Prof. dr hab. Elbieta Richter-Ws

32

8.01.2013

Podstawowa terminologia
Operacje na listach, moemy:
sortowa list czyli formalnie zastpowa dan list
inn list ktra powstaje przez wykonanie permutacji na
licie oryginalnej,
dzieli list na podlisty,
scala podlisty,
dodawa element do listy,
usuwa element z listy,
wyszuka element w licie.

Prof. dr hab. Elbieta Richter-Ws

33

8.01.2013

Lista jednokierunkowa
Wstawianie, wyszukiwanie, usuwanie:
Lista

Wstawianie

Usuwanie

Wyszukanie

Brak Duplikatw

n/2 n

n/2 n

n/2 n

Duplikaty

Lista
posortowana

m/2 m

n/2

n/2

n/2

n ilo elementw w sowniku (oraz licie bez duplikatw)


m ilo elementw w licie z duplikatami
n/2m oznacza e rednio przeszukujemy n/2 przy
pomylnym wyniku oraz m przy niepomylnym.
Zobaczymy w nastpnym wykadzie e dla implementacji
sownika w postaci drzewa przeszukiwania binarnego operacje
wymagaj rednio O(log n).
Prof. dr hab. Elbieta Richter-Ws

34

8.01.2013

Lista oparta na tablicy


Innym powszechnie znanym sposobem
implementowania listy jest tworzenie struktury
zoonej z dwch komponentw:
tablicy przechowujcej elementy listy L (musimy
zadeklarowa maksymalny wymiar),
zmiennej przechowujcej liczb elementw
znajdujcej si aktualnie na licie, oznaczmy j
przez n.
Implementacja list oparta na tablicy jest z wielu
powodw bardziej wygodna ni oparta na licie
jednokierunkowej.
Wada: konieczno zadeklarowania maksymalnej
liczby elementw.
Zaleta: moliwo przeszukiwania binarnego jeeli
lista bya posortowana.

Prof. dr hab. Elbieta Richter-Ws

35

a1

a2

an

n-1

max-1

8.01.2013

Stos
Abstrakcyjny typ danych
= stos
Implementujca struktura danych
= lista jednokierunkowa, lista oparta na
tablicach

Stos: Sekwencja elementw a1, a2, , an nalecych do


pewnego typu.
Operacje wykonywane na stosie:

kadziemy element na szczycie stosu (ang. push)


zdejmujemy element ze szczytu stosu (ang. pop)
czyszczenie stosu sprawienie e stanie si pusty (ang. clear)
sprawdzenie czy stos jest pusty (ang. empty)
sprawdzenie czy stos jest peny

Kada z operacji jest T(n) = O(1).


Stos jest wykorzystywany w tle do implementowania
funkcji rekurencyjnych.
Prof. dr hab. Elbieta Richter-Ws

36

8.01.2013

Wykorzystanie stosu w implementacji wywoa


funkcji
Stos czasu wykonania przechowuje rekordy aktywacji dla
wszystkich istniejcych w danej chwili aktywacji.
Wywoujc funkcje kadziemy rekord aktywacji na stosie.
Kiedy funkcja koczy swoje dziaanie, zdejmujemy jej rekord
aktywacji ze szczytu stosu, odsaniajc tym samym rekord
aktywacji funkcji ktra j wywoaa.

Prof. dr hab. Elbieta Richter-Ws

37

8.01.2013

Kolejka
Abstrakcyjny typ danych
= kolejka
Implementujca struktura danych
= lista jednokierunkowa, lista oparta na
tablicach

Kolejka: sekwencja elementw a1, a2, , an


nalecych do pewnego typu.
Operacje wykonywane na kolejce:
doczenie elementu do koca kolejki (ang. push)
usunicie element z pocztku kolejki (ang. pop)
czyszczenie kolejki sprawienie e stanie si pusta (ang.
clear)
sprawdzenie czy kolejka jest pusta (ang. empty)

Kada z operacji jest T(n) = O(1).


Prof. dr hab. Elbieta Richter-Ws

38

8.01.2013

Wicej abstrakcyjnych typw danych...


Abstrakcyjny typ
danych

Abstrakcyjna
implementacja

Struktura danych

Sownik

Drzewa przeszukiwania
binarnego

Struktura
lewe dziecko prawe
dziecko

Kolejka priorytetowa

Zrwnowaone drzewo
czciowo
uporzdkowane

Kopiec

Sownik

Lista

Stos

Lista

Kolejka

Lista

Prof. dr hab. Elbieta Richter-Ws

1.
2.
1.
2.
1.
2.

39

Lista jednokierunkowa
Tablica mieszajca
Lista jednokierunkowa
Tablica
Lista jednokierunkowa
Tablica cykliczna

8.01.2013

ZBIORY

Zbir jest najbardziej podstawowym


modelem danych w matematyce.
Wszystkie pojcia matematyczne, od drzew
po liczby rzeczywiste mona wyrazi za
pomoc specjalnego rodzaju zbioru.

Prof. dr hab. Elbieta Richter-Ws

40

8.01.2013

Podstawowe definicje
W matematyce pojcie zbioru nie jest
zdefiniowane wprost.
Zamiast tego, podobnie jak punkt czy prosta w
geometrii, zbir jest zdefiniowany za pomoc
swoich wasnoci.
W szczeglnoci istnieje pojecie przynalenoci,
ktre jest sensowne tylko i wycznie dla zbiorw.
Jeli S jest zbiorem oraz x jest czymkolwiek,
zawsze moemy odpowiedzie na pytanie
Czy x naley do zbioru S?
Zbir S skada si wic z wszystkich takich
elementw x, dla ktrych x naley do zbioru S.
Prof. dr hab. Elbieta Richter-Ws

41

8.01.2013

Podstawowe definicje
Definicja za pomoc abstrakcji:
Wyliczenie elementw nalecych do zbioru nie jest
jedynym sposobem jego definiowania. Bardzo wygodne
jest wyjcie od definicji e istnieje zbir S oraz e jego
elementy speniaj wasno P, tzn. {x : x S oraz
P(x) } czyli zbir takich elementw x nalecych do
zbioru S, ktre speniaj wasno P

Prof. dr hab. Elbieta Richter-Ws

42

8.01.2013

Operacje na zbiorach
Jeeli S i T s zdarzeniami w przestrzeni
probabilistycznej, to suma, przecicie i rnica

maj naturalne znaczenie,


S T jest zdarzeniem polegajcym na zajciu
zdarzenia S lub T,
S T jest zdarzeniem polegajcym na zajciu
zdarzenia S i T,
S \ T jest zdarzeniem polegajcym na zajciu
zdarzenia S ale nie T,
Jeli S jest zbiorem obejmujcym ca przestrze
probabilistyczna, S \ T jest dopenieniem zbioru T.

Prof. dr hab. Elbieta Richter-Ws

43

8.01.2013

Zbiory a listy
Istotne rnice miedzy pojciem zbir
{x1, x2, , xn } a list L = (x1, x2, , xn):

S=

Kolejno elementw w zbiorze jest nieistotna (a dla listy


jest istotna).
Elementy nalece do listy mog si powtarza (a dla
zbioru nie mog).

Prof. dr hab. Elbieta Richter-Ws

44

8.01.2013

Implemetacja zbiorw na listach


Zbiory jako posortowane listy
Operacje wykonujemy znacznie szybciej jeeli elementy
s posortowane. Za kadym razem porwnujemy ze
sob tylko dwa elementy (po jednym z kadej listy).
Wyznaczenie sumy, przecicia czy rnicy zbiorw o
rozmiarach m i n wymaga czasu O(m+n).
Jeeli listy nie byy pierwotnie posortowane to
sortowanie list zajmuje
O(m log m + n log n).
Operacja ta moe nie by szybsza ni O(m n) jeli ilo
elementw list jest bardzo rna.
Jeeli liczby m i n s porwnywalne to O(m log m
+ n log n) < O(m n)
Prof. dr hab. Elbieta Richter-Ws

45

8.01.2013

Implementacja oparta na wektorze wasnym


Definiujemy uniwersalny zbir U w ktrym zawieraj si
wszystkie zbiory na ktrych bdziemy przeprowadza
operacje. Np. talia kart (zbir 52 kart) jest uniwersalny dla
rnych moliwych zbiorw kart.
Porzdkujemy elementy zbioru U w taki sposb, by
kady element tego zbioru mona byo zwiza z
unikatow pozycj , bdc liczb cakowit od 0 do
n-1 (gdzie n jest liczba elementw w zbiorze
uniwersalnym). Liczba elementw w zbiorze S jest m.
Wwczas, zbir S zawierajcy si w zbiorze U, moemy
reprezentowa za pomoc wektora wasnego
zoonego z zer i jedynek dla kadego elementu x
nalecego do zbioru U, jeli x naley take do zbioru S,
odpowiadajca temu elementowi pozycja zawiera warto
1; jeli x nie naley do S, na odpowiedniej pozycji mamy
warto 0.
Prof. dr hab. Elbieta Richter-Ws

46

8.01.2013

Przykad z kartami
Zbir wszystkich kart koloru trefl
1111111111111000000000000000000000000000000000000000

Zbir wszystkich figur


0000000000111000000000011100000000001110000000000111

Poker w kolorze kier (as, walet, dama, krl)


0000000000000000000000000010000000001110000000000000

Kady element zbioru kart jest zwizany z


unikatow pozycj.

Prof. dr hab. Elbieta Richter-Ws

47

8.01.2013

Implementacja oparta na wektorze wasnym

Czas potrzebny na wykonanie operacji


sumy, przecicia i rnicy jest O(n).
Jeli przetwarzane zbiory s du czci
zbioru uniwersalnego to jest to duo lepsze
ni O(m log m) (posortowanie listy) lub
O(m2) (nieposortowane listy).
Jeli m << n to jest to oczywicie
nieefektywne.
Ta implementacja rwnie niepraktyczna
jeeli wymaga zbyt duego U.
Prof. dr hab. Elbieta Richter-Ws

48

8.01.2013

Struktura danych tablicy mieszajcej


Kada komrka skada si z listy jednokierunkowej,

w ktrej przechowujemy wszystkie elementy zbioru


wysanego do tej komrki przez funkcje mieszajc.
Aby odnale element x obliczamy warto h(x), ktra
wskazuje na numer komrki.
Jeli tablica mieszajca zawiera element x, to moemy
go znale przeszukujc list ktra znajduje si w tej
komrce.
Tablica mieszajca pozwala na wykorzystanie
reprezentacji zbiorw opartej na licie (wolne
przeszukiwanie), ale dziki podzieleniu zbioru na B
komrek, czas przeszukiwania jest ~ 1/B potrzebnego
do przeszukiwania caego zbioru.
W szczeglnoci moe by nawet O(1), czyli taki jak w
reprezentacji zbioru opartej na wektorze wasnym.

Prof. dr hab. Elbieta Richter-Ws

49

8.01.2013

Struktura danych tablicy mieszajcej


nagwki

h(x)

a1

a2

an

B-1
Istnieje funkcja mieszajca (ang. hash function), ktra
jako argument pobiera element x i zwraca liczb cakowit z
przedziau 0 do B-1, gdzie B jest liczb komrek w tablicy
mieszajcej.
Wartoci zwracan przez h(x) jest komrka, w ktrej
umieszczamy element x.
Wane aby funkcja h(x) mieszaa, tzn. aby komrki
zawieray t sam przyblion liczb elementw.
Prof. dr hab. Elbieta Richter-Ws

50

8.01.2013

Drzewa
Istnieje wiele sytuacji w ktrych przetwarzane
informacje maj struktur hierarchiczn lub
zagniedon, jak drzewo genealogiczne lub
diagram struktury organizacyjnej.
Abstrakcje modelujce struktur
hierarchiczn nazywamy drzewem jest to
jeden z najbardziej podstawowych modeli
danych w informatyce.

8.01.2013

Podstawowa terminologia
Drzewa s zbiorami punktw, zwanych
wzami lub wierzchokami, oraz pocze,
zwanych krawdziami.
Krawd czy dwa rne wzy.
Aby struktura zbudowana z wzw
poczonych krawdziami bya drzewem musi
spenia pewne warunki:
W kadym drzewie wyrniamy jeden wze
zwany korzeniem n1 (ang. root)
Kady wze c nie bdcy korzeniem jest
poczony krawdzi z innym wzem zwanym
rodzicem p (ang. parent) wza c. Wze c
nazywamy take dzieckiem (ang. child) wza p.
Kady wze c nie bdcy korzeniem ma
dokadnie jednego rodzica.
Kady wze ma dowoln liczb dzieci.
Drzewo jest spjne (ang. connected) w tym
sensie e jeeli rozpoczniemy analiz od
dowolnego wza c nie bdcego korzeniem i
przejdziemy do rodzica tego wza, nastpnie do
rodzica tego rodzica, itd., osigniemy w kocu
korze.

n1

n2

n5

n3

n6

n4

n7

n1 = rodzic n2, n3, n4


n2 = rodzic n5, n6
n6 = dziecko n2

8.01.2013

Rekurencyjna definicja drzew


Podstawa: Pojedynczy wze n jest drzewem. Mwimy
e n jest korzeniem drzewa zoonego z jednego wza.

Indukcja: Niech r bdzie nowym wzem oraz niech


T1, T2, , Tk bd drzewami zawierajcymi odpowiednio
korzenie c1, c2, , ck. Zamy e aden wze nie
wystpuje wicej ni raz w drzewach T1, T2, , Tk, oraz
e r, bdcy nowym wzem, nie wystpuje w adnym
z tych drzew. Nowe drzewo T tworzymy z wza r i
drzew T1, T2, , Tk w nastpujcy sposb:
T1
wze r staje si korzeniem drzewa T;

T2

dodajemy k krawdzi, po jednej czc r z kadym z wzw


c1, c2, , ck, otrzymujc w ten sposb struktur w ktrej
kady z tych wzw jest dzieckiem korzenia r. Inny sposb
interpretacji tego kroku to uczynienie z wza r rodzica
kadego z korzeni drzew T1, T2, , Tk.
8.01.2013

Tk

Drzewa zaetykietowane i drzewa wyrae.


Drzewo zaetykietowane to takie w ktrym z
kadym wzem drzewa zwizana jest jaka
etykieta lub warto. Moemy reprezentowa
wyraenia matematyczne za pomoc drzew
zaetykietowanych.
Definicja drzewa zaetykietowanego dla
wyrae arytmetycznych zawierajcych
operandy dwuargumentowe +,-,,/ oraz
operator jednoargumentowy -.
Podstawa: Pojedynczy operand niepodzielny jest

wyraeniem.
Reprezentujce go drzewo skada si z pojedynczego
wza, ktrego etykiet jest ten operand.
Indukcja: Jeli E1 oraz E2 s wyraeniami
reprezentowanymi odpowiednio przez drzewa T1, T2,
wyraenie (E1 + E2) reprezentowane jest przez drzewo
ktrego korzeniem jest wze o etykiecie +. Korze ten
ma dwoje dzieci, ktrego korzeniami s odpowiednio
korzenie drzew T1, T2.

+
T1

T2

E1 + E2

T1
( E1)
8.01.2013

Konstrukcja drzew wyrae


x

10
*

+
x

+
10

( x + 10 )

+
10

( - ( x + 10 ) )

10

( y * - ( x + 10) )
8.01.2013

Reprezentacja tablicowa
Jednym z najprostszych sposobw reprezentowania drzewa jest
wykorzystanie dla kadego wza struktury skadajcej si z pola
lub pl reprezentujcych etykiet oraz tablicy wskanikw do
dzieci tego wza.
info
p0

p1

Pbf-1

Info reprezentuje etykiet wza.


Staa bf jest rozmiarem tablicy wskanikw. Reprezentuje
maksymaln liczb dzieci dowolnego wza, czyli czynnik
rozgazienia (ang. branching factor).
i-ty element tablicy reprezentujcej wze zawiera wskanik do itego dziecka tego wza.
Brakujce poczenia moemy reprezentowa za pomoc
8.01.2013
wskanika pustego NULL.

Reprezentacje drzewa
W reprezentacji drzew zwanej skrajnie lewy
potomek-prawy element siostrzany (ang. leftmost-child-right-sibling), w kadym wle
umieszczamy jedynie wskaniki do skrajnie
lewego dziecka; wze nie zawiera wskanikw do
adnego ze swoich pozostaych dzieci.
Aby odnale drugi i wszystkie kolejne dzieci
wza n, tworzymy list jednokierunkowa tych
dzieci w ktrej kade dziecko c wskazuje na
znajdujce si bezporednio po jego prawej
stronie dziecko wza n.
Wskazany wze nazywamy prawym
elementem siostrzanym wza c.
8.01.2013

Reprezentacje drzewa
Drzewo zoone z 7 wzw
n1
n2
n5

n3
n6

Reprezentacja skrajnie lewy


potomek-prawy element
siostrzany
n1

n4

n2

n3

n4

n7

n5

n6

n7

info etykieta
leftmostChild informacja o wle
rightSibling cz listy
jednokierunkowej dzieci rodzica tego
wza

typedef struct NODE *pNODE;


struct NODE{
int info;
pNODE leftmostChild, rightSibling;
};

8.01.2013

Reprezentacje drzewa
Reprezentacja oparta na tablicy wskanikw
umoliwia nam dostp do i-tego dziecka dowolnego
wza w czasie O(1). Taka reprezentacja wie si
jednak ze znacznym marnotrawstwem przestrzeni
pamiciowej, jeli tylko kilka wzw ma wiele dzieci.
W takim wypadku wikszo wskanikw w tablicy
children bdzie rwna NULL.
Reprezentacja skrajnie lewy potomek-prawy
element siostrzany wymaga mniejszej przestrzeni
pamiciowej. Nie wymaga rwnie istnienia
maksymalnego czynnika rozgazienie wzw.
Moemy reprezentowa wzy z dowolna wartoci
tego czynnika, nie modyfikujc jednoczenie struktury
danych.
8.01.2013

Rekurencja w drzewach
Uyteczno drzew wynika z
liczby moliwych operacji
rekurencyjnych, ktre
moemy na nich wykona w
naturalny i jasny sposb
(chcemy drzewa przeglda).
Prosta rekurencja zwraca
etykiety wzw w porzdku
wzdunym (ang. pre-order
listing), czyli: korze, lewe
poddrzewo, prawe poddrzewo.
Inn powszechnie stosowan
metod do przegldania
wzw drzewa jest tzw.
przeszukiwanie wsteczne
(ang. post-order listing),
czyli lewe poddrzewo, prawe
poddrzewo, korze.

n1
n2
n5

n3
n6

n4
n7

8.01.2013

Drzewa binarne
W drzewie binarnym wze moe mie co najwyej dwoje
bezporednich potomkw.
Rekurencyjna definicja drzewa binarnego:
Podstawa:
Drzewo puste jest drzewem binarnym.

Indukcja:
Jeli r jest wzem oraz T1, T2 s drzewami binarnymi, istnieje
drzewo binarne z korzeniem r, lewym poddrzewem T1 i
prawym poddrzewem T2. Korze drzewa T1 jest lewym
dzieckiem wza r, chyba e T1 jest drzewem pustym. Podobnie
korze drzewa T2 jest prawym dzieckiem wza r, chyba e T2
jest drzewem pustym.
Wikszo terminologii wprowadzonej przy okazji drzew stosuje
si oczywicie te do drzew binarnych.

Rnica: drzewa binarne wymagaj rozrnienia lewego od


prawego dziecka, zwykle drzewa tego nie wymagaj.
Drzewa binarne to NIE s zwykle drzewa, w ktrych wzy
mog mi co najwyej dwjk dzieci.
8.01.2013

Drzewa binarne
Zdegenerowane
drzewo binarne

Wysoko drzewa zoonego z kwzw to k-1.


Czyli h = O(k).
Operacje insert, delete, find
wymagaj rednio O(k).

Pene drzewo binarne

Drzewo o wysokoci h ma k=2h+1-1


wzw.
Czyli h = O(log k).
Operacje insert, delete, find
wymagaj rednio O(log k).
8.01.2013

Drzewa binarne czciowo uporzdkowane


Jest to zaetykietowane
drzewo binarne o
nastpujcych wasnociach:
Etykietami wzw s elementy
z przypisanymi priorytetami;
priorytet moe by wartoci
elementu lub przynajmniej
jednego z jego komponentw.
Element przechowywany w
wle musi mie co najmniej tak
duy priorytet jak element
znajdujcy si w dzieciach tego
wza. Element znajdujcy si w
korzeniu dowolnego poddrzewa
jest wiec najwikszym
elementem tego poddrzewa.

18
17
9
3

16
7

8.01.2013

Drzewa przeszukiwania binarnego


Jest to zaetykietowane
drzewo binarne dla ktrego
etykiety nale do zbioru w
ktrym moliwe jest
zdefiniowanie relacji
mniejszoci.
Dla kadego wza x
spenione s nastpujce
wasnoci:
wszystkie wzy w lewym
poddrzewie maja etykiety
mniejsze od etykiety wza x
wszystkie w prawym
poddrzewie maja etykiety
wiksze od etykiety wza x.

20
10
9
3

26
11

21

29

13

8.01.2013

Graf
Graf to jest relacja binarna.

Prof. dr hab. Elbieta Richter-Ws

65

8.01.2013

Podstawowe pojcia
Graf skierowany (ang. directed graph)
Skada si z nastpujcych elementw:
Zbioru V wierzchokw (ang. nodes, vertices)
Relacji binarnej E na zbiorze V. Relacje E nazywa si
zbiorem krawdzi (ang. edges) grafu skierowanego.
Krawdzie stanowi zatem pary wierzchokw (u,v).

V = {0,1,2,3,4}
E = { (0,0), (0,1), (0,2), (1,3),
(2,0), (2,1), (2,4), (3,2),
(3,4), (4,1) }

Prof. dr hab. Elbieta Richter-Ws

66

8.01.2013

Sposoby implementacji grafw


Istniej dwie standardowe metody
reprezentacji grafw.
Pierwsza z nich, listy ssiedztwa (ang. adjacency lists),
jest, oglnie rzecz biorc, podobna do implementacji
relacji binarnych.
Druga, macierze ssiedztwa (ang. adjacency
matrices), to nowy sposb reprezentowania relacji
binarnych, ktry jest bardziej odpowiedni dla relacji, w
przypadku ktrym liczba istniejcych par stanowi
znaczc cz cakowitej liczby par, jakie mogyby
teoretycznie istnie w danej dziedzinie.

Prof. dr hab. Elbieta Richter-Ws

67

8.01.2013

Reprezentacja grafu za pomoc list ssiedztwa


Listy ssiedztwa zostay posortowane wg.
kolejnoci, ale nastpniki mog wystpowa w
dowolnej kolejnoci na odpowiedniej licie
ssiedztwa.

Prof. dr hab. Elbieta Richter-Ws

1
68

8.01.2013

Reprezentacja grafu za pomoc macierzy ssiedztwa

Tworzymy dwuwymiarow tablic;


BOOLEAN vertices[MAX][MAX];
w ktrej element vertices[u][v] ma warto
TRUE wwczas, gdy istnieje krawd (u, v), za
FALSE, w przeciwnym przypadku.

Prof. dr hab. Elbieta Richter-Ws

69

8.01.2013

Spjna skadowa grafu nieskierowanego


Kady graf nieskierowany mona podzieli na
jedna lub wiksz liczb spjnych skadowych
(ang. connected components).
Kada spjna skadowa to taki zbir
wierzchokw, e dla kadych dwch z tych
wierzchokw istnieje czca je cieka. Jeeli
graf skada si z jednej spjnej skadowej to
mwimy e jest spjny (ang. connected).
Kahului
22
Lahaina

60
16
Keokea

Prof. dr hab. Elbieta Richter-Ws

Hana

To jest graf spjny

10

70

8.01.2013

Algorytm wyznaczania spjnych skadowych


Chcemy okreli spjne skadowe grafu G. Przeprowadzamy
rozumowanie indukcyjne.
Podstawa:
Graf Go zawiera jedynie wierzchoki grafu G i adnej jego
krawdzi. Kady wierzchoek stanowi odrbn spjn
skadow .

Indukcja:

Zakadamy, e znamy ju spjne skadowe grafu Gi po


rozpatrzeniu pierwszych i krawdzi, a obecnie rozpatrujemy
(i+1) krawd {u, v}.
jeeli wierzchoki u, v nale do jednej spjnej skadowej to nic si
nie zmienia
jeeli do dwch rnych, to czymy te dwie spjne skadowe w
jedn.

x
v

u
Prof. dr hab. Elbieta Richter-Ws

y
71

8.01.2013

Minimalne drzewa rozpinajce


Drzewo rozpinajce (ang. spanning tree) grafu
nieskierowanego G stanowi zbir wierzchokw
tego grafu wraz z podzbiorem jego krawdzi,
takich e:
cz one wszystkie wierzchoki, czyli istnieje droga
miedzy dwoma dowolnymi wierzchokami ktra skada
si tylko z krawdzi drzewa rozpinajcego.
tworz one drzewo nie posiadajce korzenia,
nieuporzdkowane. Oznacza to e nie istniej adne
(proste) cykle.

Jeli graf G stanowi pojedyncz spjn skadow


to drzewo rozpinajce zawsze istnieje.

Prof. dr hab. Elbieta Richter-Ws

72

8.01.2013

Minimalne drzewa rozpinajce


Minimalne drzewo rozpinajce (ang. minimal
spanning tree) to drzewo rozpinajce, w ktrym suma

etykiet jego krawdzi jest najmniejsza ze wszystkich


moliwych do utworzenia drzew rozpinajcych tego grafu.
A
A

15
20

28

24

11

12
E

28

13

20

D
11

12
E

13

Drzewo rozpinajce

Graf nieskierowany
Prof. dr hab. Elbieta Richter-Ws

73

8.01.2013

Algorytm Kruskala
Najbardziej znany to algorytm Kruskala, ktry stanowi
proste rozszerzenie algorytmu znajdowania spjnych
skadowych. Wymagane zmiany to:
naley rozpatrywa krawdzie w kolejnoci zgodnej z rosnc
wartoci ich etykiet,
naley doczy krawd do drzewa rozpinajcego tylko w
takim wypadku gdy jej koce nale do dwch rnych
spjnych skadowych.

28
C

15
20

B
12
E 13

D
11
F

Graf nieskierowany
Prof. dr hab. Elbieta Richter-Ws

24
C

15(4)
(

24(5)
(

B
D
12((2)
11(1)
(
13(3)
(
E
F

Minimalne drzewo rozpinajce


(w nawiasach podano kolejno
dodawanych krawdzi) 8.01.2013
74

Algorytm przeszukiwania w gb
Jest to podstawowa metoda badania grafw
skierowanych. Bardzo podobna do stosowanych dla drzew,
w ktrych startuje si od korzenia i rekurencyjnie bada
wierzchoki potomne kadego odwiedzonego wierzchoka.
Trudno polega na tym ze w grafie mog pojawia si
cykle Naley wobec tego znaczy wierzchoki ju
odwiedzone i nie wraca wicej do takich wierzchokw.
W celu uniknicia dwukrotnego odwiedzenia tego samego
wierzchoka jest on odpowiednio oznaczany wic graf w
trakcie jego badania zachowuje si podobnie do
drzewa.
W rzeczywistoci mona narysowa drzewo, ktrego
krawdzie rodzic-potomek bd niektrymi krawdziami
przeszukiwanego grafu G. Takie drzewo nosi nazw drzewa
przeszukiwania w gb (ang. depth-first-search) dla
danego grafu.
Prof. dr hab. Elbieta Richter-Ws

75

8.01.2013

Drzewo przeszukiwania w gb
6
5
krawd
wsteczna

Po (podczas) konstruowaniu drzewa przeszukiwania


w gb mona ponumerowa jego wierzchoki w
kolejnoci wstecznej (ang. post-order).
Prof. dr hab. Elbieta Richter-Ws

76

8.01.2013

Algorytm Dijkstry
Traktujemy wierzchoek s jako
wierzchoek rdowy. W etapie
porednim wykonywania algorytmu
w grafie G istniej tzw. wierzchoki
ustalone (ang. settled), tzn. takie
dla ktrych znane s odlegoci
minimalne. W szczeglnoci zbir
takich wierzchokw zawiera
rwnie wierzchoek s.
Dla nieustalonego wierzchoka v
naley zapamita dugo
najkrtszej drogi specjalnej
(ang. special path) czyli takiej ktra
rozpoczyna si w wierzchoku
rdowym, wiedzie przez ustalone
wierzchoki, i na ostatnim etapie
przechodzi z obszaru ustalonego do
wierzchoka v.
Prof. dr hab. Elbieta Richter-Ws

77

Graf G
s

v
droga
specjalna

8.01.2013

Algorytm Dijkstry
Dla kadego wierzchoka u zapamitujemy warto
dist(u). Jeli u jest wierzchokiem ustalonym, to
dist(u) jest dugoci najkrtszej drogi ze rda do
wierzchoka u. Jeli u nie jest wierzchokiem
ustalonym, to dist(u) jest dugoci drogi specjalnej
ze rda do u.

Na czym polega ustalanie wierzchokw:


znajdujemy wierzchoek v ktry jest nieustalony ale
posiada najmniejsz dist(v) ze wszystkich wierzchokw
nieustalonych
przyjmujemy warto dist(v) za minimaln odlego z s
do v
dostosowujemy wartoci wszystkich dist(u) dla innych
wierzchokw, ktre nie s ustalone, wykorzystujc fakt,
e wierzchoek v jest ju ustalony.
Czyli porwnujemy stare dist(u) z wartoci dist(v)
+etykieta(v, u) jeeli taka (v, u) krawd istnieje.

Czas wykonania algorytmu jest O(m log n).


Prof. dr hab. Elbieta Richter-Ws

78

8.01.2013

Algorytm Dijkstry
Etapy wykonania algorytmu Dijkstry

Prof. dr hab. Elbieta Richter-Ws

79

8.01.2013

Algorytmy grafowe

Prof. dr hab. Elbieta Richter-Ws

80

8.01.2013

Vous aimerez peut-être aussi