zofia.kruczkiewicz@pwr.edu.pl
Politechnika Wrocławska
Katedra Informatyki Technicznej (K-30)
Zespół Inżynierii Oprogramowania i
Inteligencji Obliczeniowej
Aktualności
Dydaktyka
Kontakt
strona główna
dydaktyka
Struktury danych i algorytmy - INK9116
menu
materiały dydaktyczne
opis kursu
informacje dodatkowe
ostatnia aktualizacja
10.2023 - Inżynieria oprogramowania W04ITE-SI0011G
10.2022 - Praca dyplomowa inżynierska
ogłoszenia
egzamin
Przykładowe pytania egzaminacyjne.
wyniki eqzaminu
Wyniki z egzaminu z dnia 27.0108r zostaną ogłoszone do dnia 31.01.08r. Wpisy do indeksów - 2.02.08r., 12.00 sala 201C1. Poprawa egzaminu - 2.02.08r., 12.00-14.00 sala 201 C1.
Wyniki egzaminu.
Poprawa egzaminu oraz wpisy do indeksów - 5.02.08r., 11.00-13.00 sala 325 C3. Inny termin zaliczenia do ustalenia drogą e-mail.
materiały
Wykłady
Program wykładów i ćwiczeń - pierwszy semestr.
Wprowadzenie do algorytmów-algorytmy liniowe, algorytmy z rozgałęzieniami.
Sortowanie bąbelkowe, czasochłonność algorytmu.
Sortowanie przez zliczanie, czasochłonność algorytmu.
Sortowanie przez kopcowanie, złożoność algorytmu, podsumowanie algorytmów sortowania.
Wyszukiwanie sekwencyjne, wyszukiwanie binarne bez powtórzeń
Sortowanie pozycyjne (nieobowiązkowe).
Sortowanie zewnętrzne - przez łączenie naturalne.
Abstrakcyjne typy danych - stos. Implementacja stosu za pomocą tablicy i rekurencyjnej struktury danych. Zastosowanie stosu do programów klienckich.
Abstrakcyjne typy danych - kolejka. Implementacja kolejki za pomocą tablicy (nie obowiązuje) i rekurencyjnej struktury danych. Zastosowanie kolejki do programów klienckich.
Abstrakcyjne typy danych - kolejka priorytetowa. Implementacje kolejki za pomocą tablicy nieuporządkowanej oraz tablicy-kopca. Zastosowanie kolejki do programów klienckich.
Abstrakcyjne typy danych - kolejka priorytetowa cd. Implementacja kolejki za pomocą rekurencyjnej struktury danych. Zastosowanie kolejki do programów klienckich.
**Abstrakcyjne typy danych - słowniki (listy symboli). Implementacja słownika za pomocą tablicy indeksowanej kluczem. Zastosowanie słownika do programów klienckich.
Podsumowanie algorytmów - część 1.
*Abstrakcyjne typy danych-struktury wiązane. Lista dwukierunkowa uporządkowana.Drzewa. Drzewa poszukiwań binarnych: wstawianie liści, wstawianie do korzenia, obroty w węzłach, wyważanie drzewa, przejście przez drzewo. Złożoność obliczeniowa tablic, drzew i list
*Typy złożoności obliczeniowej. Reprezentacje grafów, algorytmy grafowe: przeszukiwanie grafu „w głąb” DFS - algorytmy „z powrotami”, algorytm przeszukiwania "wszerz" BFS – obliczanie najkrótszej ścieżki z s do wszystkich osiągalnych wierzchołków metodą "podziału i ograniczeń", algorytm Floyda określania najkrótszej ścieżki w grafie metodą programowania dynamicznego.
literatura
Literatura
N. Wirth - Algorytmy+Struktury Danych = Programy, WNT Warszawa 1999
R. Sedgewick - Algorytmy w C++, Oficyna Wydawnicza READ ME - Warszawa, 1999
T.H. Cormen, Ch E. Leiserson, R.L. Rivest - Wprowadzenie do algorytmów, WNT Warszawa 1997, 1998
L Banachowski, K.Diks, W. Rytter - Algorytmy i struktury danych, WNT Warszawa, 1999
D. Harel - Rzecz o istocie informatyki, Algorytmika, WNT Warszawa, 1992
J. Bentley - Perełki oprogramowania, WNT Warszawa, 1992