Zadania do wykładu ALGORYTMY I STRUKTURY DANYCH
|
|
- Roman Tomczak
- 7 lat temu
- Przeglądów:
Transkrypt
1 Zadania do wykładu ALGORYTMY I STRUKTURY DANYCH Szacowanie tempa wzrostu funkcji Wprowadzenie: Do szacowania złożoności obliczeniowej algorytmów wykorzystuje się następujące pojęcia analizy matematycznej: Mówimy, że funkcja f(n) określona na liczbach naturalnych o wartościach nieujemnych jest asymptotycznie ograniczona z góry przez funkcję g(n), jeśli istnieje stała C taka, że f(n) C g(n) dla prawie wszystkich n. Piszemy wówczas lub f(n) = O(g(n)) lub f(n) g(n). Mówimy, że funkcja f(n) jest asymptotycznie równa funkcji g(n), jeśli f(n) = O(g(n)) oraz g(n) = O(f(n)). Piszemy wówczas f(n) = Θ(g(n)). Piszemy też f(n) g(n), jeśli f(n) g(n), ale nieprawda, że g(n) f(n). W przypadku funkcji rosnących używamy określeń rośnie: nie szybciej niż, nie wolniej niż, ma takie samo tempo wzrostu. Bardziej formalnie O(g) definiujemy jako klasę wszystkich funkcji f g, a zapis f = O(g) traktujemy jako nieformalny zapis f O(g). Określamy ponadto log (k) n = log log... log n, gdzie logarytmowanie wykonywane jest k razy. (Przez log rozumiemy zawsze logarytm przy podstawie 2, jeśli nie jest powiedziane inaczej). 1. Wykazać, że a k n k + a k 1 n k a 0 = Θ(n k ), jeśli a k > Wykazać, że z warunek limf(n)/g(n) = 0 implikuje f(n) g(n). Wykorzystać to, do uzasadnienia, zachodzą następujące zależności (dla jakich k i c?): 1 log (k) n log (k 1) n n n k n k+1 c n (c + 1) n n n... n! Wykazać, że relacje i są przechodnie. 4. Pokazać, że dla dowolnych podstaw r, s > 1 zachodzi log r n log s n. Wywnioskować stąd, że w zapisie O(log n) podstawa jest nieistotna. 5. Znajdź wzór na długość zapisów dziesiętnego i binarnego liczby naturalnej n i wywnioskuj, że w obu przypadkach jest to Θ(log n). Oszacować proporcję długości zapisu dziesiętnego do długości zapisu binarnego liczby naturalnej n. 6. Wykazać, że jeśli f = O(g), to O(g) + O(f) = O(g + f) = O(g). 7. Znaleźć wzory na sumy (a) n (b) n 2 i umiejscowć te funkcje w hierarchii zadania Udowodnić, że ogólnie dla k 1: n i=1 i k = 1 k + 1 nk+1 + O(n k ) = O(n k+1 ) 9. *Skonstruuj ( sztuczną ) funkcję, która nie da się umieścić w liniowej hierarchii zadania 2 (czyli pokaż, że porządek nie jest bynajmniej porządkiem liniowym na zbiorze wszystkich klas funkcji asymptotycznie równych).
2 Zbiory dynamiczne, listy, kolejki, stosy 10. Zaimplementuj listę z wartownikiem (tzn. napisz operacje Search, Insert i Delete dla tego typu list). 11. Przy pomocy tablicy jednowymiarowej zaimplementuj kolejkę (procedury Enqueue, Dequeue) 12. Przy pomocy tablicy jednowymiarowej zaimplementuj stos (procedury Push, Pop oraz Stack- Empty). 13. Przy pomocy listy jednokierunkowej zaimplementuj kolejkę oraz stos. 14. Napisać algorytm odwracania elementów listy jednokierunkowej (możliwie efektywny). 15. Odwróć stos S mając do dyspozycji puste stosy S 1 i S Odwróć stos S mając do dyspozycji pusty stos T i kilka zmiennych. 17. Uporządkuj kolejkę Q (według kluczy) mając do dyspozycji stos i kilka zmiennych. 18. Uporządkuj kolejkę 100-elementową mając do dyspozycji kilka zmiennych (czyli w stałej pamięci ; znana jest z góry długość kolejki). Binarne drzewa wyszukiwań 19. Jaka jest minimalna wysokość drzewa k-arnego zawierającego n wierzchołków. Udowodnij. 20. Ile jest wierzchołków w drzewie binarnym pełnym na poziomie h? Ile jest wierzchołków rozpoczynających poddrzewo wysokości h? (Te same pytanie dla drzew pełnych k-arnych). Binarne drzewo wyszukiwań (BST) to takie drzewo, w którym dla każdego wierzchołka v klucze elementów w lewym poddrzewie mniejsze są od klucza v, a klucze elementów w prawym poddrzewie są większe od klucza v. Zakładając, że operacje wstawiania i usuwania elementów są losowe, można przyjąć, że drzewo jest mniej więcej zrównoważone, a oczekiwana wysokość (pesymistyczny czas wyszukiwania) wynosi O(log n). 21. Napisz algorytm wstawiania nowego elementu do BST. Oszacuj czas działania. 22. Napisz algorytm usuwania elementu z BST. Oszacuj czas działania. 23. Czy usuwanie elementów z BST jest przemienne? To znaczy, czy usuwając najpierw element x a potem y otrzymamy to samo drzewo co usuwając najpierw element y a potem x? 24. Napisz algorytm wypisania wszystkich elementów BST w kolejności porządku liniowego wyznaczonego przez klucze oraz oszacuj jego złożoność. (Wskazówka: zastosuj procedurę rekurencyjną wypisując najpierw elementy lewego podrzewa, a potem elementy prawego podrzewa). szacuj czas działania. 25. * Rozważ, które operacje się komplikują przy założeniu, że różne elementy w BST mogą mieć jednakowe klucze. 26. Udowodnij, że dla elementu, który ma dwóch synów, jego następnik (w porządku liniowym) nie ma lewego syna, a jego poprzednik nie ma prawego syna. 27. Wykorzystując procedurę wypisywania wszystkich elementów drzewa BST, dla dowolnego drzewa z jednokierunkowymi dowiązaniami, zaprojektuj procedurę odnajdywania ojca. 2
3 Sortowanie 28. Zaimplementować sortowanie przez scalanie (Merge-Sort) na tablicy (z użyciem dodatkowej tablicy). 29. Opisać algorytm sortowania przez bąbelkowanie (Bubble-Sort). Jaki jest jego czas działania? 30. Ile razy trzeba podzielić daną liczbę n na kolejne połowy, żeby otrzymać liczbę nie większą niż 1. Zakładamy, że przy dzieleniu liczby nieparzystej wybieramy większą połowę, tzn. sufit z podzielenia liczby przez dwa. Odpowiedź udowodnij. 31. Tablicę A[1..n] różnych liczb 1,..., n traktujemy jako permutację. Każdą parę liczb i < j, taką że A[i] > A[j] nazywamy inwersją. Zaprojektuj algorytm liczący ilość inwersji działający w czasie O(n log n) (wzorując się na algorytmie Merge-Sort). Rekurencja 32. Wzór rekurencyjny F n = F n 1 + F n 2 z warunkiem F 0 = F 1 = 1 definiuje tzw. liczby Fibbonaciego. Udowodnić przez indukcję wzór: ( ) ( F n = ) n ( ) ( ) n Który ze wzorów lepiej nadaje się do zastosowań komputerowych? metodę obliczania liczb Fibonacciego. Opisać najefektywniejszą Schemat Hornera 33. Omów algorytm obliczania wartości wielomianu w danym punkcie za pomocą schematu Hornera. Pokaż jak można wykorzystać schemat Hornera do obliczania wartości liczby danej w zapisie szesnastkowym. Przykładowo, jaka liczba ma szesnastkowy zapis 2EF 5A7? 34. Opisz możliwie efektywny algorytm znajdowania zapisu szestnastkowego liczb (czy można wykorzystać tu schemat Hornera?) 35. Opisz algorytmy szybkiego potęgowania oparty na idei schematu Hornera oraz na idei znajdowania zapisu binarnego od prawej do lewej. 36. Zastosuj algorytmy szybkiego potęgowania dla wykładników m = 15, 23, 48 (to znaczy pokaż jak szybko obliczyć potęgi x 15, x 23, x 48 przy pomocy tych algorytmów). Czy można te potęgi obliczyć szybciej (w mniejszej ilości mnożeń)? Przechodzenie drzew 37. Poniższe wyrażenia przedstaw w notacji polskiej i odwrotnej polskiej: a) ab + (c(d + e + f) g h/a) b) ((p q) (q r)) (p r) 38. Oblicz wartości wyrażeń zapisanych w notacji odwrotnej polskiej, gdzie symbolami końcowymi są pojedyncze cyfry: a) b) Narysuj drzewa wyrażeń z dwóch poprzednich zadań. Czy były one potrzebne do rozwiązania tych zdań? 3
4 40. Zapisać prawa łączności mnożenia i rozdzielności mnożenia względem dodawania w odwrotnej notacji polskiej. 41. Załóżmy, że wyrażeniu w zapisie infiksowym używamy tylko jednego działania binarnego, którego argumenty ujmujemy w nawiasy (bez symbolu działania; jak dla mnożenia). Napisz procedurę zapisującą takie wyrażenie w notacji prefiksowej. Przekonaj się, o ile trudniejsze jest zadanie odwrotne. 42. Opisz procedurę sprawdzania poprawności zapisu w postaci infiksowej (prefiksowej). 43. Opisz procedurę tworzenia drzewa wyrażenia w zapisie infiksowym. Wynik ma być dany w formie tablicy reprezentującej drzewo binarne. 44. Opisz procedurę przekształcania zapisu w notacji polskiej na zapis w odwrotnej notacji polskiej. Kopce 45. Udowodnić, że jeśli węzły drzewa binarnego prawie pełnego ponumerować poziomami od góry w dół, to dla każdego węzła, jeśli ma on numer i, to jego lewy syn i prawy syn mają, odpowiednio, numery 2i oraz 2i Jaki jest numer pierwszego elementu rozpoczynającego ciąg liści w tablicy reprezentującej drzewo binarne zrównoważone (prawie pełne)? 47. Czy tablica A = (23, 17, 14, 6, 13, 10, 1, 5, 7, 12) jest kopcem? 48. Na powyższej tablicy zademonstrować procedury budowania kopca i sortowania przez kopcowanie. 49. Dla kopca n elementowego, ile maksymalnie i ile minimalnie elementów zawierają lewe i prawe poddrzewo korzenia? 50. Jaki jest czas działania algorytmu heap-sort na tablicy juz posortowanej (rosnąco, malejaco)? 51. Zaimplementuj kolejkę priorytetową przy użyciu kopca (procedury Extract-Max, Insert. 52. Napisz algorytm przekształcania listy uporządkowanej w kopiec i oszacuj czas działania. Czy algorytm warto zmienić w zależności od sposobu posortowania? Opis algorytmów 53. Opisz algorytm Euklidesa znajdowania NWD liczb na dwa sposoby: jako algorytm iteracyjny i algorytm rekurencyjny. Uzasadnij jego poprawność. 54. Oszacuj czas działania algorytmu Euklidesa. Ile maksymalnie dzieleń trzeba w nim wykonać? (Wskazówka: Rozważ zmianę pary (a, b) i zauważ, że co dwa kroki algorytmu, drugi element tej pary zmniejsza co najmniej o połowę). 55. Napisz najprostszy algorytm testowania czy liczba naturalna n jest pierwsza. Jaki jest jego czas działania? Podać wynik względem wielkości liczby n oraz wynik względem długości zapisu liczby n. Który z nich jest proporcjonalny do rzeczywistego czasu obliczeń na komputerze? 56. Załóżmy, że operacja sprawdzania czy liczba n podzielna jest przez liczbę d wykonywana jest w czasie stałym i wymaga (przy odpowiedniej implementacji) nie więcej niż operacji podstawowych (cykli) procesora. Załóżmy że obliczenia wykonujemy na procesorze 4 GHz. Jak duże liczby jesteśmy w stanie testować, czy są pierwsze, przy pomocy powyższego prostego algorytmu? 4
5 57. Gdybyśmy chcieli testować pierwszość liczb dłuższych niż 64 bity (long long int, jak należałoby zaimplementować algorytm. Podaj jedynie idee. Czy sprawdzanie podzielności może być wykonywane w czasie stałym? Jaki jest czas działania algorytmu? 58. Opisz rekurencyjny algorytm generowania wszystkich słów długości k nad alfabetem n-elementowym (przez formalne słowo rozumiemy dowolny ciąg liter). 59. Ustal porządek liniowy, w jakim generowane są słowa w poprzednim algorytmie (ewentualnie zmień algorytm tak, żeby był to porządek słownikowy-licznikowy). Napisz procedurę Next, która generuje następne słowo na podstawie poprzedniego i użyj jej do zaprojektowania algorytmu generującego wszystkie słowa. (Taki algorytm ma tę zaletę, że działa używając stałej pamięci). 60. Zdefiniuj porządek leksykograficzny (alfabetyczny) i porządek standardowy na słowach. (W porządku standardowym słowa krótsze poprzedzają dłuższe, a gdy długości są równe decyduje porządek alfabetyczny). Słowo a 1... a n jest mniejsze od słowa b 1... b m, jeśli Opisz algorytm generowania wszystkich permutacji zbioru n-elementowego. Jaki jest jego czas działania? 62. *Opisz algorytm generowania kolejnych permutacji zbioru n-elementowego, który używa stałej pamięci. Wieże w Hanoi W indyjskim mieście Benares, w samym środku ziemi na początku świata Brahma nasadził na diamentowy pręcik 64 szczerozłote krążki, których średnice rosną od góry do dołu. Używając drugiego, pomocniczego pręcika kapłani mają za zadanie przełożyć tę piramidę z krążków na trzeci pręcik, przy czym ich ruchy muszą polegać na zdjęciu jednego krążka z jednego pręcika i nasadzeniu go na inny pręcik, a na każdym pręciku krążki muszą zawsze leżeć mniejszy na większym. Kiedy na trzeciej pałeczce znajdą się wszystkie 64 krążki, nastąpi koniec świata. Tyle hinduska legenda. Oszacuj, kiedy będzie koniec świata. 63. Opisz naturalny algorytm rekurencyjny rozwiązujący problem wież Hanoi. Wykaż jego poprawność. 64. Zastosuj ten algorytm do przypadku n = 5 symulując mechaniczne działanie kompilatora. (Kompilator wchodząc z kolejne wywołanie procedury rekurencyjnej zapamiętuje na stosie aktualne parametry i numer aktualnie wykonywanej instrukcji żeby wiadomo było, którą instrukcję wykonać po powrocie i z jakimi parametrami. Na końcu procedury rekurencyjnej musi być znacznik końca informujący kompilator, że procedura została zakończona i należy wrócić do wykonywania procedury na wyższym poziomie pobierając dane ze stosu.) 65. Jaka jest minimalna ilość przesunięć potrzebna do przestawienia n krążków. Udowodnij odpowiedź. 66. Znajdź przepis pokazujący jaki należy wykonać ruch w danej sytuacji (algorytm on-line). Wskazówka: przyjrzyj się jak poruszają się krążki w procedurze rekurencyjnej i spróbuj dać możliwie prostą receptę na kolejne ruchy. Sortowanie 67. Zilustruj działanie procedury Partition dla tablicy A = (13, 19, 9, 5, 12, 8, 7, 4, 11, 2, 6, 21). 68. Jaką wartość q zwraca procedura Partition, gdy wszystkie elementy w tablicy są równe. Jak zmodyfikować procedurę żeby zwracała wartość środkową? Jaki jest czas działania procedury Quicksort w tym przypadku. 5
6 69. Załóżmy, że w ciągu miesiąca spływają dane o zrealizowanych czekach, po kilku czekach na dzień, i numery czeków są posortowane z dokładnością do dnia (w danym dniu dane mogą spłynąć w nieprawidłowej kolejności. Uzasadnij, że dla takich danych procedura Insert-sort działa szybciej niż Quicksort 70. Jak zmodyfikować procedurę Quicksort, żeby sortowała w porządku nierosnącym? 71. Ile porównań potrzeba, żeby wyznaczyć minimum dla danego zbioru liczb? Zaprojektuj algorytm, który wyznacza jednocześnie minimum i maksimum w danym zbiorze. Ile porównań potrzeba? 72. Używając procedury Partition zaprojektuj algorytm wyznaczający i-ty element zbioru liczb. Oszacuj czas działania. 73. Zaprojektuj szczegóły algorytmu Counting-Sort sortującego n kluczy-liczb całkowitych z przedziału 1, m, opartego na pomyśle zliczenia najpierw w osobnej tablicy P [i] ile jest kluczy równych i, a następnie ile jest kluczy nie większych od i i w ten sposób wyznaczenie właściwego miejsca tablicy wynikowej dla klucza równego i. Oszacuj czas działania. 74. Zilustruj działanie procedury Counting-Sort na tablicy A = (6, 0, 2, 0, 1, 3, 4, 6, 1, 3, 2). Czy procedura ta sortuje stabilnie. 75. Zaprojektuj algorytm, który dla danych n liczb z przedziału < 0, k > wykonuje wstępne obliczenia w czasie O(n + k), a następnie na ich podstawie w stałym czasie pozwala określić ile spośród n liczb leży w przedziale < a, b >. 76. Zilustruj działanie procedury sortowania kubełkowego z zastosowaniem sortowania przez wstawianie kolejnych list dla tablicy A = (0.79, 0.13, 0.16, 0.64, 0.39, 0.20, 0.89, 0.53, 0.71, 0.42). 77. Metodę sortowania nazywamy stabilną, jeśli nie zmienia ona kolejności elementów o równych kluczach. Które ze znanych algorytmów sortowania są stabilne? 78. Udowodnij przez indukcję poprawność sortowania pozycyjnego. Haszowanie i programowanie dynamiczne 79. Zilustruj ciąg wstawień elementów o kluczach 5, 28, 19, 15, 20, 33, 12, 17, 10 do tablicy z haszowaniem, wykorzystując do rozwiązywania kolizji metodę łańcuchową. Przyjmujemy, że tablica zawiera 9 pozycji, a h(k) = k mod 9 jest funkcja haszującą. 80. Zilustruj ciąg wstawień elementów o tych samych kluczach do tablicy 12 elementowej przy pomocy adresowania otwartego liniowego. 81. Zilustruj działanie algorytmu programowania dynamicznego (PD) znajdowania minimalnej ilości mnożeń skalarnych potrzebnych do pomnożenia czterech macierzy o kolejnych wymiarach: 21, 15, 7, 15, Opisz algorytm wyznaczania optymalnego nawiasowania dla pomnożenia n macierzy. 83. Wyznacz optymalne nawiasowanie iloczynu ciągu macierzy o wymiarach 5, 10, 3, 17, 5, 50, Opisz algorytm (oparty na metodzie PD) wyznaczania najdłuższego wspólnego podciągu (NWP) dwóch ciągów i oszacuj jego czas działania. 85. Znajdź NWP ciągów i *Zmodyfikuj algorytm znajdywania długości NWP dwóch ciągów długości m i n, tak żeby działał w czasie O(m + n). Czy możliwe to jest w przypadku wyznaczania NWP? 87. Zaprojektuj algorytm wyznaczania najdłuższego niemalejącego podciągu ciągu n liczb całkowitych działający w czasie O(n 2 ). 6
7 88. *Jak poprawić poprzedni algorytm tak żeby działał w czasie O(n log n). Algorytmy grafowe 89. (Graf eulerowski) Udowodnij, że spójny graf ma zamkniętą drogę Eulera wtedy i tylko gdy każdy wierzchołek ma stopień parzysty. 90. (Graf półeulerowski) Udowodnij, że spójny nieeulerowski graf ma drogę Eulera (niekoniecznie zamkniętą) wtedy i tylko gdy ma dokładnie dwa wierzchołki stopnia nieparzystego. 91. Przedstaw efektywny algorytm wyznaczania drogi Eulera w grafie. 92. Zaprojektuj dwa algorytmy tworzenia drzewa rozpinającego w grafie prostym spójnym: (a) rozpoczynający od zbioru pustego T dodający kolejne krawędzie do T, aż do otrzymania drzewa rozpinającego (b) rozpoczynający od zbioru wszystkich krawędzi i usuwający kolejne krawędzie, aż do otrzymania drzewa Uzasadnij poprawność tych algorytmów. 93. Jednocześnie z przeszukiwaniem grafu skonstruować drzewo rozpinające grafu 94. Opisz procedurę wyznaczania najkrótszej drogi między wierzchołkami w grafie a) prostym; b) skierowanym. 95. Opisz procedury sprawdzania w czasie O(n + m), że graf jest a) spójny; b) acykliczny. Jakiej reprezentacji musimy użyć? Jak sprawa się zmienia, gdy rozważymy wersje skierowane tych zagadnień? 96. Pokazać na przykładzie konkretnego grafu, że DFS iteracyjny (z bezpośrednim użyciem stosu) i DFS rekurencyjny wyznaczają różne drzewa i mogą wyznaczać nawet drzewa różnej wysokości. 97. * Czy da się tak zaprojektować DFS iteracyjny tak, żeby kolorował wierzchołki grafu (na biało, szaro i czarno) dokładnie tak samo jak DFS rekurencyjny. 98. (Problem chińskiego listonosza) Wskazać sposoby obliczania najkrótszej drogi zamkniętej w grafach ważonych eulerowskich i półeulerowskich. Odpowiedź uzasadnić. 99. Zaprojektować algorytm znajdowania krótkiej ścieżki pomiędzy wierzchołkami oparty na strategii zachłannej (w każdym wierzchołku wybieramy najkrótszą nieodwiedzoną krawędź). Pokazać, że w tym przypadku strategia zachłanna nie jest optymalna Rozważyć wersję algorytmu Kruskala polegającą na usuwaniu kolejnych krawędzi o możliwie największej wadze rozpoczynając od zbioru wszystkich krawędzi (Algorytm Prima) Zaprezentować algorytm wyznaczania minimalnego drzewa rozpinającego (MST) w grafir ważonym oparty na zasadzie dołączania kolejnych krawędzi do spójnego acyklicznego podgrafu o możliwie najmniejszej wadze (Backtracking) Zaprojektować iteracyjny algorytm numerujący wierzchołki drzewa w numeracji preorder. 7
wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)
egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................
Bardziej szczegółowoWykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy
Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element
Bardziej szczegółowoAnaliza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą
Bardziej szczegółowoEGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew
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;
Bardziej szczegółowoEgzamin, AISDI, I termin, 18 czerwca 2015 r.
Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział
Bardziej szczegółowoZofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1
Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem
Bardziej szczegółowoAlgorytmy i Struktury Danych, 9. ćwiczenia
Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące
Bardziej szczegółowoAlgorytmy i Struktury Danych
Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu
Bardziej szczegółowoPorządek symetryczny: right(x)
Porządek symetryczny: x lef t(x) right(x) Własność drzewa BST: W drzewach BST mamy porządek symetryczny. Dla każdego węzła x spełniony jest warunek: jeżeli węzeł y leży w lewym poddrzewie x, to key(y)
Bardziej szczegółowoZłożoność obliczeniowa zadania, zestaw 2
Złożoność obliczeniowa zadania, zestaw 2 Określanie złożoności obliczeniowej algorytmów, obliczanie pesymistycznej i oczekiwanej złożoności obliczeniowej 1. Dana jest tablica jednowymiarowa A o rozmiarze
Bardziej szczegółowoKolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.
Kolejki Kolejka priorytetowa Kolejka priorytetowa (ang. priority queue) to struktura danych pozwalająca efektywnie realizować następujące operacje na zbiorze dynamicznym, którego elementy pochodzą z określonego
Bardziej szczegółowoa) 7 b) 19 c) 21 d) 34
Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie
Bardziej szczegółowoWysokość drzewa Głębokość węzła
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań teoretycznych z egzaminów. Strona 1 z 12 Pytania teoretyczne z egzaminu pisemnego z 25 czerwca 2014 (studia dzienne)
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie
Bardziej szczegółowoMatematyka dyskretna - 7.Drzewa
Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja
Bardziej szczegółowoStruktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott
Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy
Bardziej szczegółowoprowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325
PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj
Bardziej szczegółowoZłożoność algorytmów. Wstęp do Informatyki
Złożoność algorytmów Złożoność pamięciowa - liczba i rozmiar struktur danych wykorzystywanych w algorytmie Złożoność czasowa - liczba operacji elementarnych wykonywanych w trakcie przebiegu algorytmu Złożoność
Bardziej szczegółowoProgramowanie w VB Proste algorytmy sortowania
Programowanie w VB Proste algorytmy sortowania Sortowanie bąbelkowe Algorytm sortowania bąbelkowego polega na porównywaniu par elementów leżących obok siebie i, jeśli jest to potrzebne, zmienianiu ich
Bardziej szczegółowoWykład 8. Drzewo rozpinające (minimum spanning tree)
Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,
Bardziej szczegółowoRekurencja. Przykład. Rozważmy ciąg
Rekurencja Definicje rekurencyjne Definicja: Mówimy, iż ciąg jest zdefiniowany rekurencyjnie, jeżeli: (P) Określony jest pewien skończony zbiór wyrazów tego ciągu, zwykle jest to pierwszy wyraz tego ciągu
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Bardziej szczegółowoPodstawy Informatyki. Sprawność algorytmów
Podstawy Informatyki Sprawność algorytmów Sprawność algorytmów Kryteria oceny oszczędności Miara złożoności rozmiaru pamięci (złożoność pamięciowa): Liczba zmiennych + liczba i rozmiar struktur danych
Bardziej szczegółowoRekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!
Rekurencja Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)! Pseudokod: silnia(n): jeżeli n == 0 silnia = 1 w przeciwnym
Bardziej szczegółowoDrzewo. 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:
Drzewa Drzewa Drzewo (ang. tree) zbiór węzłów powiązanych wskaźnikami, spójny i bez cykli. Drzewo posiada wyróżniony węzeł początkowy nazywany korzeniem (ang. root). Drzewo ukorzenione jest strukturą hierarchiczną.
Bardziej szczegółowoAlgorytmiczna teoria grafów
Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)
Bardziej szczegółowoListy, kolejki, stosy
Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:
Bardziej szczegółowoWprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, Spis treści. Wprowadzenie 2
Wprowadzenie do algorytmów / Thomas H. Cormen [et al.]. - wyd. 7. Warszawa, 2012 Spis treści Przedmowa XIII Część I Podstawy Wprowadzenie 2 1. Rola algorytmów w obliczeniach 4 1.1. Algorytmy 4 1.2. Algorytmy
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane
Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne
Bardziej szczegółowoAnaliza algorytmów zadania podstawowe
Analiza algorytmów zadania podstawowe 15 stycznia 2019 Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r P Jaka wartość zostanie zwrócona
Bardziej szczegółowoPodstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno
Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują
Bardziej szczegółowoDynamiczny przydział pamięci w języku C. Dynamiczne struktury danych. dr inż. Jarosław Forenc. Metoda 1 (wektor N M-elementowy)
Rok akademicki 2012/2013, Wykład nr 2 2/25 Plan wykładu nr 2 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013
Bardziej szczegółowoDrzewa poszukiwań binarnych
1 Cel ćwiczenia Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet ielonogórski Drzewa poszukiwań binarnych Ćwiczenie
Bardziej szczegółowoAlgorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne
Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może
Bardziej szczegółowoSortowanie - wybrane algorytmy
Sortowanie - wybrane algorytmy Aleksandra Wilkowska Wydział Matematyki - Katedra Matematyki Stosowanej Politechika Wrocławska 2 maja 2018 1 / 39 Plan prezentacji Złożoność obliczeniowa Sortowanie bąbelkowe
Bardziej szczegółowoPodstawowe algorytmy i ich implementacje w C. Wykład 9
Wstęp do programowania 1 Podstawowe algorytmy i ich implementacje w C Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Element minimalny i maksymalny zbioru Element minimalny
Bardziej szczegółowoPrzypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.
Spis treści 1 Drzewa 1.1 Drzewa binarne 1.1.1 Zadanie 1.1.2 Drzewo BST (Binary Search Tree) 1.1.2.1 Zadanie 1 1.1.2.2 Zadanie 2 1.1.2.3 Zadanie 3 1.1.2.4 Usuwanie węzła w drzewie BST 1.1.2.5 Zadanie 4
Bardziej szczegółowoTablice z haszowaniem
Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje
Bardziej szczegółowoKlasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny
Klasa 2 INFORMATYKA dla szkół ponadgimnazjalnych zakres rozszerzony Założone osiągnięcia ucznia wymagania edukacyjne na poszczególne oceny Algorytmy 2 3 4 5 6 Wie, co to jest algorytm. Wymienia przykłady
Bardziej szczegółowoZasady analizy algorytmów
Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania
Bardziej szczegółowoEgzaminy i inne zadania. Semestr II.
Egzaminy i inne zadania. Semestr II. Poniższe zadania są wyborem zadań ze Wstępu do Informatyki z egzaminów jakie przeprowadziłem w ciągu ostatnich lat. Ponadto dołączyłem szereg zadań, które pojawiały
Bardziej szczegółowoAlgorytmy Równoległe i Rozproszone Część V - Model PRAM II
Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06
Bardziej szczegółowoWstęp do programowania
Wstęp do programowania Rekurencja, metoda dziel i zwyciężaj Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. VIII Jesień 2014 1 / 27 Rekurencja Recursion See Recursion. P. Daniluk(Wydział
Bardziej szczegółowoAlgorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2
Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania
Bardziej szczegółowoSortowanie. Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania:
Sortowanie Kolejki priorytetowe i algorytm Heapsort Dynamiczny problem sortowania: podać strukturę danych dla elementów dynamicznego skończonego multi-zbioru S, względem którego są wykonywane następujące
Bardziej szczegółowoAlgorytmy i struktury danych.
Kod przedmiotu: ASD Rodzaj przedmiotu: Wydział: Informatyki Kierunek: Informatyka Specjalność (specjalizacja): - Algorytmy i struktury danych. kierunkowy ; obowiązkowy Poziom studiów: pierwszego stopnia
Bardziej szczegółowoUniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych
Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Algorytmy i struktury danych Laboratorium Drzewa poszukiwań binarnych 1 Cel ćwiczenia Ćwiczenie ma na celu zapoznanie studentów
Bardziej szczegółowoAlgorytmika i pseudoprogramowanie
Przedmiotowy system oceniania Zawód: Technik Informatyk Nr programu: 312[ 01] /T,SP/MENiS/ 2004.06.14 Przedmiot: Programowanie Strukturalne i Obiektowe Klasa: druga Dział Dopuszczający Dostateczny Dobry
Bardziej szczegółowo2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Bardziej szczegółowoZaawansowane algorytmy i struktury danych
Zaawansowane algorytmy i struktury danych u dr Barbary Marszał-Paszek Opracowanie pytań praktycznych z egzaminów. Strona 1 z 12 Pytania praktyczne z kolokwium zaliczeniowego z 19 czerwca 2014 (studia dzienne)
Bardziej szczegółowoZłożoność obliczeniowa klasycznych problemów grafowych
Złożoność obliczeniowa klasycznych problemów grafowych Oznaczenia: G graf, V liczba wierzchołków, E liczba krawędzi 1. Spójność grafu Graf jest spójny jeżeli istnieje ścieżka łącząca każdą parę jego wierzchołków.
Bardziej szczegółowoZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.
POLITECHNIKA WARSZAWSKA Instytut Automatyki i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 204/205 Język programowania: Środowisko programistyczne: C/C++ Qt Wykład 2 : Drzewa BST c.d., równoważenie
Bardziej szczegółowoStrategia "dziel i zwyciężaj"
Strategia "dziel i zwyciężaj" W tej metodzie problem dzielony jest na kilka mniejszych podproblemów podobnych do początkowego problemu. Problemy te rozwiązywane są rekurencyjnie, a następnie rozwiązania
Bardziej szczegółowoWSTĘP DO INFORMATYKI. Drzewa i struktury drzewiaste
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Drzewa i struktury drzewiaste www.agh.edu.pl DEFINICJA DRZEWA Drzewo
Bardziej szczegółowoWstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami
Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami Przykład 1. Napisz program, który dla podanej liczby n wypisze jej rozkład na czynniki pierwsze. Oblicz asymptotyczną złożoność
Bardziej szczegółowoStruktury danych: stos, kolejka, lista, drzewo
Struktury danych: stos, kolejka, lista, drzewo Wykład: dane w strukturze, funkcje i rodzaje struktur, LIFO, last in first out, kolejka FIFO, first in first out, push, pop, size, empty, głowa, ogon, implementacja
Bardziej szczegółowoMatematyka dyskretna - 8. Egzaminy próbne. Uwaga! Niektórych z tych zadań nie obejmuje program dla studiów zaocznych - proszę się tym nie niepokoić -
Matematyka dyskretna - 8. Egzaminy próbne. Uwaga! Niektórych z tych zadań nie obejmuje program dla studiów zaocznych - proszę się tym nie niepokoić - takie zadania pojawią się tylko na egzaminach dla studentów
Bardziej szczegółowoTablice z haszowaniem
Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje
Bardziej szczegółowoZadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
Bardziej szczegółowoANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:
ANALIZA ALGORYTMÓW Analiza algorytmów polega między innymi na odpowiedzi na pytania: 1) Czy problem może być rozwiązany na komputerze w dostępnym czasie i pamięci? 2) Który ze znanych algorytmów należy
Bardziej szczegółowododatkowe operacje dla kopca binarnego: typu min oraz typu max:
ASD - ćwiczenia IX Kopce binarne własność porządku kopca gdzie dla każdej trójki wierzchołków kopca (X, Y, Z) porządek etykiet elem jest następujący X.elem Y.elem oraz Z.elem Y.elem w przypadku kopca typu
Bardziej szczegółowoAlgorytmy i Struktury Danych, 2. ćwiczenia
Algorytmy i Struktury Danych, 2. ćwiczenia 2017-10-13 Spis treści 1 Optymalne sortowanie 5 ciu elementów 1 2 Sortowanie metodą Shella 2 3 Przesunięcie cykliczne tablicy 3 4 Scalanie w miejscu dla ciągów
Bardziej szczegółowoSortowanie bąbelkowe
1/98 Sortowanie bąbelkowe (Bubble sort) prosty i nieefektywny algorytm sortowania wielokrotnie przeglądamy listę elementów, porównując dwa sąsiadujące i zamieniając je miejscami, jeśli znajdują się w złym
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
Bardziej szczegółowoWykład 2. Drzewa zbalansowane AVL i 2-3-4
Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania
Bardziej szczegółowoLiteratura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:
Temat: Powtórzenie wiadomości z PODSTAW INFORMATYKI I: Pojęcia: złożoność czasowa algorytmu, rząd funkcji kosztu. Algorytmy. Metody programistyczne. Struktury danych. Literatura. A. V. Aho, J.E. Hopcroft,
Bardziej szczegółowoDrzewa poszukiwań binarnych
1 Drzewa poszukiwań binarnych Kacper Pawłowski Streszczenie W tej pracy przedstawię zagadnienia związane z drzewami poszukiwań binarnych. Przytoczę poszczególne operacje na tej strukturze danych oraz ich
Bardziej szczegółowoAlgorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)
Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie
Bardziej szczegółowoWSTĘP DO INFORMATYKI. Złożoność obliczeniowa, efektywność i algorytmy sortowania
Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej WSTĘP DO INFORMATYKI Adrian Horzyk Złożoność obliczeniowa, efektywność i algorytmy sortowania www.agh.edu.pl
Bardziej szczegółowoAlgorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek
Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących
Bardziej szczegółowoTechnologie informacyjne Wykład VII-IX
Technologie informacyjne -IX A. Matuszak 19 marca 2013 A. Matuszak Technologie informacyjne -IX Rekurencja A. Matuszak (2) Technologie informacyjne -IX Gotowanie jajek na miękko weż czysty garnek włóż
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą
Bardziej szczegółowoAlgorytmy sortujące i wyszukujące
Algorytmy sortujące i wyszukujące Zadaniem algorytmów sortujących jest ułożenie elementów danego zbioru w ściśle określonej kolejności. Najczęściej wykorzystywany jest porządek numeryczny lub leksykograficzny.
Bardziej szczegółowoPodstawy Informatyki. Metody dostępu do danych
Podstawy Informatyki c.d. alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Bazy danych Struktury danych Średni czas odszukania rekordu Drzewa binarne w pamięci dyskowej 2 Sformułowanie
Bardziej szczegółowoSortowanie. Bartman Jacek Algorytmy i struktury
Sortowanie Bartman Jacek jbartman@univ.rzeszow.pl Algorytmy i struktury danych Sortowanie przez proste wstawianie przykład 41 56 17 39 88 24 03 72 41 56 17 39 88 24 03 72 17 41 56 39 88 24 03 72 17 39
Bardziej szczegółowoLuty 2001 Algorytmy (7) 2000/2001 s-rg@siwy.il.pw.edu.pl
System dziesiętny 7 * 10 4 + 3 * 10 3 + 0 * 10 2 + 5 *10 1 + 1 * 10 0 = 73051 Liczba 10 w tym zapisie nazywa się podstawą systemu liczenia. Jeśli liczba 73051 byłaby zapisana w systemie ósemkowym, co powinniśmy
Bardziej szczegółowoWYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA
DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający
Bardziej szczegółowoTEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa
Bardziej szczegółowoINFORMATYKA SORTOWANIE DANYCH.
INFORMATYKA SORTOWANIE DANYCH http://www.infoceram.agh.edu.pl SORTOWANIE Jest to proces ustawiania zbioru obiektów w określonym porządku. Sortowanie stosowane jest w celu ułatwienia późniejszego wyszukania
Bardziej szczegółowoZadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.
Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy
Bardziej szczegółowoRekurencja. Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów.
Rekurencja Rekurencja zwana także rekursją jest jedną z najważniejszych metod konstruowania rozwiązań i algorytmów. Zgodnie ze znaczeniem informatycznym algorytm rekurencyjny to taki który korzysta z samego
Bardziej szczegółowoZadania do samodzielnego rozwiązania
Zadania do samodzielnego rozwiązania I. Podzielność liczb całkowitych 1. Pewna liczba sześciocyfrowa a kończy się cyfrą 5. Jeśli tę cyfrę przestawimy na miejsce pierwsze ze strony lewej, to otrzymamy nową
Bardziej szczegółowoAlgorytmy i struktury danych. wykład 5
Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również
Bardziej szczegółowoWykład 5. Sortowanie w czasie liniowologarytmicznym
Wykład 5 Sortowanie w czasie liniowologarytmicznym 1 Sortowanie - zadanie Definicja (dla liczb): wejście: ciąg n liczb A = (a 1, a 2,, a n ) wyjście: permutacja (a 1,, a n ) taka, że a 1 a n 2 Zestawienie
Bardziej szczegółowoDrzewa BST i AVL. Drzewa poszukiwań binarnych (BST)
Drzewa ST i VL Drzewa poszukiwań binarnych (ST) Drzewo ST to dynamiczna struktura danych (w formie drzewa binarnego), która ma tą właściwość, że dla każdego elementu wszystkie elementy w jego prawym poddrzewie
Bardziej szczegółowooperacje 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.
Problem porządkowania zwanego również sortowaniem jest jednym z najważniejszych i najpopularniejszych zagadnień informatycznych. Dane: Liczba naturalna n i ciąg n liczb x 1, x 2,, x n. Wynik: Uporządkowanie
Bardziej szczegółowoDrzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.
Drzewa binarne Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0 i T 1 są drzewami binarnymi to T 0 T 1 jest drzewem binarnym Np. ( ) ( ( )) Wielkość drzewa
Bardziej szczegółowoAlgorytmy i Struktury Danych.
Algorytmy i Struktury Danych. Organizacja wykładu. Problem Sortowania. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 1 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury
Bardziej szczegółowoAlgorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne
Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na
Bardziej szczegółowoRekurencje. Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie:
Rekurencje Jeśli algorytm zawiera wywołanie samego siebie, jego czas działania moŝe być określony rekurencją. Przykład: sortowanie przez scalanie: T(n) = Θ(1) (dla n = 1) T(n) = 2 T(n/2) + Θ(n) (dla n
Bardziej szczegółowoZadanie 1. Potęgi (14 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,
Bardziej szczegółowo0-0000, 1-0001, 2-0010, 3-0011 itd... 9-1001.
KODOWANIE Jednym z problemów, z którymi spotykamy się w informatyce, jest problem właściwego wykorzystania pamięci. Konstruując algorytm staramy się zwykle nie tylko o zminimalizowanie kosztów czasowych
Bardziej szczegółowoCzy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?
DROGI i CYKLE EULERA w grafach Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? Czy można narysować podaną figurę nie odrywając ołówka od papieru
Bardziej szczegółowoKompletna dokumentacja kontenera C++ vector w - http://www.cplusplus.com/reference/stl/vector/
STL, czyli o co tyle hałasu W świecie programowania C++, hasło STL pojawia się nieustannie i zawsze jest o nim głośno... często początkujące osoby, które nie znają STL-a pytają się co to jest i czemu go
Bardziej szczegółowoTeoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 6a Model danych oparty na drzewach 1 Model danych oparty na drzewach Istnieje wiele sytuacji w których przetwarzane informacje mają strukturę hierarchiczną lub zagnieżdżoną,
Bardziej szczegółowoPODSTAWY INFORMATYKI wykład 10.
PODSTAWY INFORMATYKI wykład 10. Adrian Horzyk Web: http://home.agh.edu.pl/~horzyk/ E-mail: horzyk@agh.edu.pl Google: Adrian Horzyk Gabinet: paw. D13 p. 325 Akademia Górniczo-Hutniacza w Krakowie WEAIiE,
Bardziej szczegółowoDrzewa wyszukiwań binarnych (BST)
Drzewa wyszukiwań binarnych (BST) Krzysztof Grządziel 12 czerwca 2007 roku 1 Drzewa Binarne Drzewa wyszukiwań binarnych, w skrócie BST (od ang. binary search trees), to szczególny przypadek drzew binarnych.
Bardziej szczegółowoPorównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki
Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First
Bardziej szczegółowoALGORYTMY I STRUKTURY DANYCH
LGORTM I STRUKTUR DNH Temat 6: Drzewa ST, VL Wykładowca: dr inż. bigniew TRPT e-mail: bigniew.tarapata@isi.wat.edu.pl http://www.tarapata.strefa.pl/p_algorytmy_i_struktury_danych/ Współautorami wykładu
Bardziej szczegółowo