Algorytmy i struktury danych - przykładowe zadania egzaminacyjne
Podaj definicję algorytmu
Podaj podstawowe elementy analizy algorytmów
Podaj definicję algorytmu poprawnego semantycznie
Podaj definicje i wyjaśnij pojęcia czasowej złożoności obliczeniowej: pesymistycznej, optymistycznej i oczekiwanej
Podaj oszacowania następujących funkcji używając notacji O:
f(n) = .....................
Podaj sposoby rozwiązywania rekurencji
Rozwiąż następujące równania rekurencyjne: ....................
Udowodnij przez indukcję poprawność następującego rozwiązania: ................. dla rekurencji ............
Dla algorytmu sortowania ..............(przez wstawianie, przez scalanie, szybkie):
zapisz algorytm (wraz z procedurami pomocniczymi: ....................(scalanie, dzielenie)) w pseudojęzyku (lub wybranym języku programowania)
przeprowadź analizę złożoności obliczeniowej (czasowej i pamięciowej)
zilustruj działanie dla przykładowej tablicy 10-cio elementowej
Podaj algorytmy operacji push i pop dla tablicowej realizacji stosu
Podaj algorytmy operacji dequeue, enqueue dla tablicowej realizacji kolejki
Podaj algorytmy dla operacji wstawiania na listę, usuwania z listy i wyszukiwania na liście dla realizacji za pomocą:
listy powiązanej pojedynczej liniowej
listy powiązanej pojedynczej cyklicznej (z wartownikiem)
listy powiązanej podwójnej liniowej
listy powiązanej podwójnej cyklicznej (z wartownikiem)
Podaj definicje grafów:
skierowanych
nieskierowanych
spójnych
acyklicznych
Dla podanego grafu przedstaw jego reprezentacje za pomocą:
list sąsiedztwa
macierzy sąsiedztwa
Podaj algorytm przechodzenia grafu wszerz i zilustruj jego działanie na podanym przykładzie, tworząc drzewo przechodzenia grafu wszerz
Podaj algorytm przechodzenia grafu w głąb i zilustruj jego działanie na podanym przykładzie, wypisując wierzchołki w kolejności „przed”-preorder i „po”-postorder
Podaj definicję drzewa i drzewa binarnego
Podaj własności drzew charakteryzujące liczbę wierzchołków i krawędzi drzewa
Wyjaśnij pojęcia:
wierzchołek wewnętrzny
głębokość wierzchołka
wysokość wierzchołka i wysokość drzewa
Podaj definicję drzewa przeszukiwań binarnych (BST) oraz algorytm (wraz z objaśnieniami poszczególnych kroków) wstawiania elementu do drzewa BST
Przedstaw algorytm przeszukiwania drzewa BST w wersji:
rekurencyjnej
iteracyjnej
Zanalizuj złożoność obliczeniową podstawowych operacji na drzewach BST
Podaj definicję słownika
Podaj algorytm wyszukiwania:
liniowego
binarnego
Przedstaw sposób działania tablicy pomieszanej:
z łańcuchowym rozwiązywaniem kolizji
z adresowaniem otwartym
Zanalizuj złożoność obliczeniową podstawowych operacji dla tablicy pomieszanej:
z łańcuchowym rozwiązywaniem kolizji
z adresowaniem otwartym
Podaj przykłady funkcji mieszających i krótko je scharakteryzuj