EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Podobne dokumenty
Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Twój wynik: 4 punktów na 6 możliwych do uzyskania (66,67 %).

a) 7 b) 19 c) 21 d) 34

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Programowanie dynamiczne cz. 2

Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Wybrane podstawowe rodzaje algorytmów

Matematyczne Podstawy Informatyki

Złożoność obliczeniowa klasycznych problemów grafowych

Programowanie dynamiczne i algorytmy zachłanne

Podstawy Informatyki. Sprawność algorytmów

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Sortowanie - wybrane algorytmy

Złożoność obliczeniowa zadania, zestaw 2

Złożoność algorytmów. Wstęp do Informatyki

Sortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:

Algorytmy i Struktury Danych

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Zaawansowane algorytmy i struktury danych

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Analiza algorytmów zadania podstawowe

Wstęp do programowania

Temat: Algorytmy zachłanne

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

struktury danych dla operacji słownikowych

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Strategia "dziel i zwyciężaj"

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 10 Grafy, algorytmy grafowe

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Wstęp do programowania

Algorytmiczna teoria grafów

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

Teoretyczne podstawy informatyki

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy i struktury danych. wykład 5

prowadzący dr ADRIAN HORZYK /~horzyk tel.: Konsultacje paw. D-13/325

Sortowanie. Bartman Jacek Algorytmy i struktury

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

[12] Metody projektowania algorytmów (dziel i rządź, programowanie dynamiczne i algorytmy zachłanne).

WSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste

dodatkowe operacje dla kopca binarnego: typu min oraz typu max:

TEORETYCZNE PODSTAWY INFORMATYKI

Sortowanie bąbelkowe

Algorytmy sortujące i wyszukujące

Schemat programowania dynamicznego (ang. dynamic programming)

Algorytmy i Struktury Danych, 2. ćwiczenia

Jeśli czas działania algorytmu zależy nie tylko od rozmiaru danych wejściowych i przyjmuje różne wartości dla różnych danych o tym samym rozmiarze,

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Porządek symetryczny: right(x)

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Podejście zachłanne, a programowanie dynamiczne

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Sortowanie przez scalanie

Wstęp do programowania INP001213Wcl rok akademicki 2018/19 semestr zimowy. Wykład 13. Karol Tarnowski A-1 p.

Wstęp do programowania

Kolorowanie wierzchołków grafu

KARTA MODUŁU KSZTAŁCENIA

Techniki konstruowania algorytmów. Metoda dziel i zwyciężaj

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk

Wysokość drzewa Głębokość węzła

1. Liczby i w zapisie zmiennoprzecinkowym przedstawia się następująco

Egzaminy i inne zadania. Semestr II.

Ogólne wiadomości o grafach

Wykład 8. Drzewo rozpinające (minimum spanning tree)

TEORETYCZNE PODSTAWY INFORMATYKI

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

Matematyka Dyskretna - zadania

Algorytmy i struktury danych.

Programowanie dynamiczne

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Algorytmy i Struktury Danych, 9. ćwiczenia

Kolokwium ze wstępu do informatyki, I rok Mat. (Ściśle tajne przed godz. 10 : grudnia 2005.)

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Szukanie najkrótszych dróg z jednym ródłem

Metody przeszukiwania

Wstęp do programowania

Podstawy Informatyki. Metody dostępu do danych

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Matematyczne Podstawy Informatyki

TEORETYCZNE PODSTAWY INFORMATYKI

Porównanie czasów działania algorytmów sortowania przez wstawianie i scalanie

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

WSTĘP DO INFORMATYKI. Złożoność obliczeniowa, efektywność i algorytmy sortowania

Digraf. 13 maja 2017

Drzewa poszukiwań binarnych

Zasady analizy algorytmów

Metody teorii gier. ALP520 - Wykład z Algorytmów Probabilistycznych p.2

PODSTAWY INFORMATYKI wykład 10.

Sortowanie przez wstawianie Insertion Sort

Transkrypt:

1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0; while(i!=n){ suma+=i; i+=; Czy powyższy algorytm jest: poprawny całkowicie, poprawny częściowo, nie jest poprawny ani całkowicie ani częściowo. (3 pkt) Dane są trzy funkcje: f 1 (n) = 0,01 4 n + 100n, f (n) = logn n + 0,1n, f 3 (n) = log n + logn 100 oraz następujące rzędy funkcji: (n), (logn), ( n ), (4 n ), (n ), (n 1/ ), (nlogn), (n 100 ), (n!), (n n ) Przyporządkuj każdej z funkcji odpowiedni rząd: f 1 n = f n = f 3 n = 3. ( pkt) Dana jest następująca funkcja: int F(int n){ if(n==0 n==1) return 1; return F(n-1)+F(n-); Jaki jest co do rzędu, pesymistyczny koszt czasowy powyższej funkcji. Zakładamy, że rozmiarem zadania jest n, a operacją elementarną dodawanie. 4. ( pkt) Dana jest następująca funkcja: int G(int n, int k){ if(n==k k==0) return 1; return G(n-1, k-1)+g(n-1,k); Ile razy wywoła się powyższa funkcja dla danych n=4 i k=? 5. ( pkt) Z którymi elementami poniższego ciągu uporządkowanego będzie porównany element x=1 w algorytmie wyszukiwania binarnego. Wynik zapisz w kolejności wykonywanych porównao. Ciąg: 1, 5, 0, 5, 30, 50, 80, 100, 00 Strona 1

6. ( pkt) Pewien problem o rozmiarze n został rozwiązany przy użyciu strategii dziel i zwyciężaj. Jego czasowa złożonośd pesymistyczna została następnie zapisana w postaci poniższego równania rekurencyjnego: dla n T max n = T n max + n dla n > Jaki jest rząd funkcji kosztu tego algorytmu: (nlogn) (n ) (logn) Inny koszt. Jak?: 7. (3 pkt) Dany jest zbiór n przedmiotów o wagach wyrażonych w kg będących liczbami naturalnymi. Chcemy załadowad możliwie najpełniej przyczepę o ładowności m kg. Czy tak zdefiniowany problem można rozwiązad strategią zachłanną, stosując w pierwszym kroku algorytmu sortowanie przedmiotów nierosnąco po wagach? Tak. Nie. Podaj kontrprzykład (tzn. przykład danych wejściowych, dla których rozwiązanie algorytmem zachłannym nie będzie optymalne): 8. (1 pkt) Które z poniższych zdao są prawdziwe? Wszystkie problemy posiadające własnośd optymalnej podstruktury można optymalnie rozwiązad strategią zachłanną Wszystkie problemy posiadające własnośd wyboru zachłannego można rozwiązad optymalnie strategią zachłanną Problemy posiadające obie własności: optymalnej podstruktury i wyboru zachłannego, można rozwiązad optymalnie strategią zachłanną. 9. (1 pkt) Wskaż algorytmy wykorzystujące programowanie dynamiczne: Algorytm Dijkstry Algorytm Forda-Bellmana Algorytm wyszukiwania binarnego Żaden z powyższych algorytmów nie wykorzystuje techniki programowania dynamicznego 10. ( pkt) W tablicy liczb został zbudowany kopiec zupełny. Zawartośd kopca jest następująca: 10, 8, 7, 5, 3, 6. Do kopca dodano następnie liczbę 9. Jaka jest kolejnośd liczb w kopcu po dodaniu tej wartości: 11. ( pkt) Która z metod wykona najmniej porównao na ciągu uporządkowanym: sortowanie szybkie, sortowanie przez wstawianie, sortowanie przez wybieranie, każda z podanych metod wykona tyle samo porównao. Strona

1. ( pkt) Jaki jest koszt pesymistyczny wyszukiwania elementu w następujących strukturach danych, zawierających w momencie wyszukiwania n elementów? Wystarczy podad rząd funkcji kosztu. Lista nieuporządkowana: Tablica posortowana: Drzewo BST: Drzewo AVL: 13. ( pkt) Ile co najwyżej elementów może zawierad drzewo binarne składające się z n poziomów? Zakładamy, że drzewo posiadające tylko jeden element składa się z jednego poziomu. Podaj dokładny wynik. 14. ( pkt) Zbuduj drzewo BST wstawiając kolejno elementy: 8, 1, 5, 1, 6, 0, 10. Jaki element może zastąpid wartośd 8 w procesie usuwania tej wartości z drzewa. 15. ( pkt) Do początkowo pustego drzewa AVL wstawiono kolejno elementy: 15, 5, 10, 5, 35, 1. Etykietą korzenia utworzonego w ten sposób drzewa jest: 10 5 15 Żadna z wartości. Podaj poprawną odpowiedź:... 16. (1 pkt) Jaki jest optymalny koszt algorytmu wyświetlającego zawartośd drzewa BST w porządku rosnącym? 17. (1 pkt) Które z poniższych zdao są prawdziwe: Algorytm Dijkstry zawsze działa skutecznie w grafach o ujemnych wagach. Algorytm Forda-Bellmana można zastosowad tylko do grafów z wagami dodatnimi. Algorytm Floyda-Warshalla służy do wyznaczania najkrótszych ścieżek między wszystkimi odległościami wierzchołków. Żaden z powyższych algorytmów nie daje dobrych wyników w grafach z cyklami o ujemnych wagach. 18. ( pkt) Dany jest graf o następujących listach incydencji: 1:, 4 : 1, 3, 5 3:, 5, 6 4: 1 5:, 6 6: 3, 7 7: 6 Wypisz kolejno odwiedzane wierzchołki w wyniku przeglądania tego grafu wszerz rozpoczynając od wierzchołka nr 1. Strona 3

19. (3 pkt) Określ kolory poszczególnych wierzchołków ustalone w algorytmie aproksymacyjnym kolorowania opartym o maksymalne zbiory niezależne dla grafu o następujących listach incydencji: 1:, 3, 4 : 1, 3, 4 3: 1,, 6 4: 1,, 6 5: 6 6: 3, 4, 5 Zakładamy, że jeżeli w trakcie realizacji algorytmu dochodzi do wyboru wierzchołków według ustalonego kryterium i kilka wierzchołków spełnia to kryterium to wybierany jest wierzchołek o najniższym numerze. nr wierzchołka 1 3 4 5 6 nr koloru 0. (3 pkt) Ustal zawartośd tabeli odległości d (tabeli odległości minimalnych) po każdym kroku algorytmu Dijkstry dla następującego grafu. Wierzchołek startowy s=1 5 1 1 4 4 3 tablica d d[1] d[] d[3] d[4] po inicjalizacji po I kroku po II kroku ostatecznie 1. ( pkt) Mamy dany problem maksymalnego wypełnienia różnymi towarami windy o ładowności 1000 kilogramów. W rozwiązaniu optymalnym udało się wypełnid kabinę windy maksymalnie. Algorytm przybliżony (bazujący na strategii zachłannej) posiada ograniczenie względne błędu aproksymacyjnego równe. Oznacza to, że: Algorytm ten zdoła zapełnid windę przynajmniej 998 kilogramami towaru. Algorytm ten zdoła zapełnid windę przynajmniej do połowy jej ładowności. Algorytm ten zdoła zapełnid windę co najwyżej do połowy jej ładowności. Algorytm ten załaduje do windy jedynie kg towaru. Żadna z powyższych odpowiedzi nie jest poprawna.. (1 pkt) Które z poniższych zdao jest prawdziwe: Każdy problem NP-zupełny posiada rozwiązanie działające w czasie wielomianowym. Żaden problem NP-zupełny nie posiada rozwiązania działającego w czasie wielomianowym. Nie wiadomo, czy problemy NP-zupełne mają rozwiązanie działające w czasie wielomianowym. Strona 4

3. ( pkt) Który z poniższych problemów jest NP-zupełny? problem domina problem sortowania topologicznego grafu problem cyklu Hamiltona problem komiwojażera Żaden z powyższych problemów 4. ( pkt) Który z cykli Hamiltona wygeneruje się jako pierwszy dla grafu z zadania nr 19. Wierzchołek startowy cyklu ma numer 1. 5. (3 pkt) Do tablicy z haszowaniem T o długości m=11 wstawiamy kolejno klucze 11, 3, 34, 4, 15, 5,, używając adresowania otwartego typu liniowego do rozwiązywania problemu kolizji. Funkcja haszująca ma wzór x, i = x + i %m, gdzie x = x%m. Wyznacz zawartośd tablicy T. T = [ ] 0 1 3 4 5 6 7 8 9 10 Strona 5