• Nie Znaleziono Wyników

Przeglad podstawowych algorytmow

N/A
N/A
Protected

Academic year: 2021

Share "Przeglad podstawowych algorytmow"

Copied!
9
0
0

Pełen tekst

(1)

Przegląd podstawowych algorytmów

(2)

Treść kursu

Zajęcia 1WprowadzenieProgramowanie dynamiczneZajęcia 2SortowanieWyszukiwanie binarneZajęcia 3Sortowanie pozycyjneAlgorytmy zachłanneZajęcia 4Rekurencja

Przeszukiwanie z nawrotami (backtracking)

Zajęcia 5 i 6

Grafy — Wprowadzenie

(3)

Programowanie dynamiczne

Programowanie dynamiczne:

Strategia projektowania algorytmów, która opiera się na obliczaniu wyniku

pewnego problemu na podstawie

wyników dla tego samego problemu z innymi argumentami.

(4)

Definicja 1. Liczby Fibonnaciego

Ciąg liczbowy Fn zadany następującymi

równościami:

1. F0 = F1 = 1

(5)

Wydawanie reszty

 Mamy dany pewien zbiór monet i/lub

banknotów, których możemy użyć do wydania konkretnej kwoty.

 Pytanie brzmi,

jak to zrobić korzystając z najmniejszej możliwej liczby monet lub banknotów.

(6)

Wydawanie reszty – rozwiązanie

Nie najgorszym pomysłem jest, na przykład, wybieranie zawsze największych nominałów, które mieszczą się w pozostałej do wydania kwocie.

Podejście to nazywa się zachłannym.

Pytanie:

(7)

Najdłuższy wspólny podciąg

Mając dane dwa ciągi an i bn, należy znaleźć ich najdłuższy

wspólny podciąg, tzn. takie i1 < i2 < … < ik oraz j1 < j2 < … < jk , że

aim = bjm dla każdego

m < 1, 2, . . . , k>.

W tym celu należy obliczyć kolejne wartości macierzy t, gdzie t[g]

[h] oznacza najdłuższy wspólny podciąg

(a raczej jego długość) spośród pierwszych g wyrazów ciągu an

oraz pierwszych h wyrazów ciągu bn.

Łatwo wtedy obliczymy kolejne wyrazy t. Jeśli bowiem

ag = bh, to

t[g][h] = 1+t[g − 1][h − 1]

a w przeciwnym wypadku:

(8)

NWP - Ćwiczenie

 Dla podanych ciągów oblicz długość

NWP

a[11]={0,1,2,3,4,5,6,7,8,9,1}; b[8]={0,2,3,4,1,8,3,6};

(9)

NWP

Optymalizacja zużycia pamięci

// A i B to długości ciągów a i b

// tablica t[2][B] jest początkowo wyzerowana for(int g=1; g<=A; g++) for(int h=1; h<=B; h++) if(a[g] == b[h]) t[g % 2][h] = 1 + t[1 - g % 2][h - 1]; else t[g % 2][h] = max(t[1 - g % 2][h], t[g % 2][h - 1]);

Cytaty

Powiązane dokumenty

Załącznik nr 2 – schemat dla nauczyciela – Czym bracia Lwie Serce zasłużyli sobie na miano człowieka. walczą o

Prąd elektryczny, którego używamy w naszych domach jest prądem przemiennym.. Oddziaływanie magnesów z elektromagnesami zostało wykorzystane do konstrukcji

Dostosowując powyższą metodę uzyskujemy pełny algorytm przy pomocy którego, możemy sprawdzić czy zadana liczba naturalna n o dowolnej podstawie m

39. Sekularyzacja jest to zmniejszenie roli religii w społeczeństwie. Sekularyzacja Prus jest to wprowadzenie luteranizmu do Prus Książęcych. Unia Protestancka i Liga Katolicka.

NNiiee pprrzzyy-- jjęęttoo uucchhwwaałł ddoottyycczząąccyycchh sspprraaww oossoo-- bboowwyycchh,, m m..iinn..:: pprrzzyyzznnaanniiaa pprraaww wwyykkoonnyywwaanniiaa

Jest pycha udziału w czymś wielkim, nawet, gdy się było tylko biernym statystą.. Oczywistą też jest pycha wywyższania się nad tych, którzy, wedle naszego dzisiejszego

Wykreśl wyrazy, które nie powinny znaleźć się w zdaniu.. Mama przyniosła do domu

Profesor Krzysztof Simon, kierownik Kliniki Chorób Zakaźnych i Hepatologii Uniwersytetu Medycznego we Wrocławiu, przyznaje, że młodzi ludzie w stolicy województwa