ALGORYTMY I STRUKTURY DANYCH

download ALGORYTMY I STRUKTURY  DANYCH

If you can't read please download the document

description

ALGORYTMY I STRUKTURY DANYCH. WYKŁAD 02 Wyszukiwanie Grażyna Mirkowska PJWSTK, 2003/2004. Plan wykładu. Wyszukiwanie w dowolnym ciągu Algorytm naiwny Analiza kosztu średniego Wyszukiwanie w ciągu uporządkowanym Algorytm sekwencyjny Analiza kosztu średniego Algorytm ze skokami - PowerPoint PPT Presentation

Transcript of ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH
WYKAD 02 Wyszukiwanie

Grayna MirkowskaPJWSTK, 2003/2004

G. Mirkowska, ASD_02 Wyszukiwanie

Plan wykadu
Wyszukiwanie w dowolnym cigu Algorytm naiwnyAnaliza kosztu redniegoWyszukiwanie w cigu uporzdkowanymAlgorytm sekwencyjnyAnaliza kosztu redniegoAlgorytm ze skokamialgorytm binarnych poszukiwaProblem optymalnoci

G. Mirkowska, ASD_02 Wyszukiwanie

Wyszukiwanie w cigu nieuporzdkowanym
Problem Niech E bdzie dan przestrzeni, a X jej skoczonym podzbiorem. Zbada, czy dany element x przestrzeni E naley do wybranego podzbioru X.
Metoda rozwizania polega na porwnywaniu kolejnych elementw cigu, poczynajc od pierwszego, z elementem x. Jeli badany element jest rwny x, to koczymy postpowanie; jeli nie, to rozwaamy nastpny element cigu.
Specyfikacja wp ={(ei ) cig n elementw przestrzeni E , n 1} wk ={ wynik ( i n) ei = x}
Zakadamy, e elementy cigu s przechowywane w pewnej tablicy e[1], e[2],...,e[n].

G. Mirkowska, ASD_02 Wyszukiwanie

Diagram przepywu
pocztek
koniec
i n and not wynik
x= e[i]
wynik := true
wynik := false; i := 1;
i := i+1;
x {e[1],...,e[i-1]}, wynik=false , i=1
x {e[1],...,e[i-1]}, in+1,wynik=false, in
x=e[i], in wynik=true
x {e[1],...,e[i-1]}, in, x e[i]
x {e[1],...,e[i-1]}, in+1, wynik=false
Tak
Nie

G. Mirkowska, ASD_02 Wyszukiwanie

Algorytm
Wersja 1{ i :=1; wynik := false; while ( i n and not wynik) { if x=e[i] then wynik := true else i := i+1 fi; }}
wynik= true, i n , e[i]=x lub wynik=false, i=n+1, x {e[1],...,e[i-1]}
wynik = true wttw dla pewnego i n , e[i]=x
Wersja 2{ e[n+1]:= x; i:=1; while (e[i] x ) { i := i+1; } wynik := (i n );}

G. Mirkowska, ASD_02 Wyszukiwanie

Analiza kosztu
Operacja dominujca = porwnywanie elementw
W najlepszym razie algorytm wykona 1 porwnanie. W najgorszym razie n- porwna.
Koszt redni A(n)=S d Dn p(d) * t(d)
Prawdopodo-biestwo wystpienia danych d
Koszt realizacji algorytmu dla danych d
Niech p(xX)= p i zamy, e jest jednakowo prawdopodobne, e x znajduje si na 1szym, 2gim czy i-tym miejscu.
Wtedy p(x=e[i]) = p/n.
Zatem A(n) =1* p/n+ 2*p/n +...+n*p/n +n*(1-p) = n - (n-1)*p/2.
A koszt pamiciowy?

G. Mirkowska, ASD_02 Wyszukiwanie

Wyszukiwanie w cigu uporzdkowanym
Problem Dany jest cig rosncy e[1],..,e[n] oraz element x pewnej przestrzeni liniowo uporzdkowanej . Chcemy ustali przedzia e[i], e[i+1], w ktrym ewentualnie mieci si x.
Specyfikacja : wp= {(i