Zagadnienie do egzaminu z algorytmów i struktur danych. 1. Co to

Transkrypt

Zagadnienie do egzaminu z algorytmów i struktur danych. 1. Co to
Zagadnienie do egzaminu z algorytmów i struktur danych.
1. Co to jest niezmiennik pętli? Jak korzystając z niezmiennika pętli udowodnić poprawność
algorytmu?
2. Co to jest złożoność obliczeniowa? Jak oszacować złożoność obliczeniową algorytmów
iteracyjnych?
3. Algorytmy sortowania:
a) sortowanie przez wstawianie,
b) sortowanie przez proste wybieranie,
c) sortowanie bąbelkowe,
d) sortowanie przez scalanie,
e) sortowanie przez kopcowanie, własność kopca
f) sortowanie szybkie
g) sortowanie przez zliczanie.
Dla każdego algorytmu należy znać pseudokod, złożoność obliczeniową i dowód poprawności przez
niezmiennik pętli.
4. Metoda dziel i zwyciężaj
a) na czym polega metoda dziel i zwyciężaj,
b) algorytm Karatsuba, przykład działania, złożoność obliczeniowa,
c) algorytm Strassena, przykład działania, złożoność obliczeniowa,
5. Algorytmy z powrotami:
a) na czym polega idea algorytmów z powrotami,
b) droga skoczka szachowego, pseudokod i drzewo wywołań,
c) problem 8 hetmanów, pseudokod i drzewo wywołań,
6. Programowanie dynamiczne:
a) na czym polega idea programowania dynamicznego,
b) co to jest optymalna podstruktura,
c) dyskretny problem plecakowy, pseudokod, złożoność obliczeniowa,
d) rozmienianie pieniędzy, pseudokod, złożoność obliczeniowa,
e) najdłuższy wspólny podciąg, pseudokod, złożoność obliczeniowa,
6. Algorytmy zachłanne
a) na czym polega idea algorytmów zachłannych
b) co to jest optymalna podstruktura i co to jest wybór zachłanny,
c) kodowanie Huffmana, pseudokod, złożoność obliczeniowa,
d) rozmienianie pieniędzy, pseudokod, złożoność obliczeniowa,
7. Drzewa poszukiwań binarnych:
a) własność drzewa poszukiwań binarnych,
b) algorytmy: search, minimum, maximum, predecessor, successor, insert, delete - pseudokod,
złożoność obliczeniowa, przykład działania.
c) algorytmy: rotacja w lewo, rotacja w prawo - pseudokod, złożoność obliczeniowa, przykład
działania.
d) drzewa czerwono-czarne: własność drzewa czerwono-czarnego, algorytm insert - pseudokod,
złożoność obliczeniowa, przykład działania.
8. Algorytmy grafowe:
a) reprezentacja macierzowa i reprezentacja listowa
b) przeszukiwanie w głąb, przeszukiwanie wszerz - pseudokod, złożoność obliczeniowa,
przykład działania.
c) minimalne drzewa rozpinające: algorytm Kruskala, algorytm Prima - pseudokod, złożoność
obliczeniowa, na czym polega wybór zachłanny, na czym polega struktura optymalnego rozwiązania,
przykład działania.
d) najkrótsze ścieżki z jednym źródłem: algorytm Dijkstry, algorytm Belmana-Forda pseudokod, złożoność obliczeniowa, na czym polega wybór zachłanny, na czym polega struktura
optymalnego rozwiązania, co to jest relaksacja, przykład działania.