Vous êtes sur la page 1sur 12

Lepiej uy algorytmu InsertionSort, zamiast MergeSort, kiedy dane s prawie posortowane mamy do czynienia z bardzo maymi danymi mamy

bardzo mao dodatkowej pamici

Wyznaczenie operacji(i) dominujcej/ych jest potrzebne do okrelenia: zoonoci optymistycznej pamiciowej zoonoci oczekiwanej pamiciowej zoonoci oczekiwanej obliczeniowej

Analizujemy czciow poprawno algorytmu. Powinnimy wic sprawdzi: wasno stopu krok indukcyjny czy niezmiennik ptli jest prawdziwy po wejciu do ptli dla danych speniajcych warunek pocztkowy czy niezmiennik ptli jest prawdziwy po wejciu do ptli dla kadych danych wejciowych

Nazwa struktury danych AVL i zwizany z ni algorytm pochodzi od: nazwy uniwersyteckiej ligi siatkwki, ktrej pasjonatami byli jej twrcy pierwszych liter angielskiego skrtu opisujcego najwaniejsz cech tej struktury pierwszych liter nazwisk trzech twrcw tej metody Szybkiej transformaty Fouriera uywamy do: analizy i obrbki sygnaw dwikowych znajdowania najkrtszej cieki w grafie mnoenia wielomianw mnoenia liczb sortowania

Porwnujc (dla danego algorytmu) zoono pesymistyczn obliczeniow z oczekiwan pamiciow: pierwsza jest (zawsze) gorsza od drugiej pierwsza jest (zawsze) nie lepsza od drugiej mog by sobie rwne

Porwnujc (dla danego algorytmu) zoono pesymistyczn obliczeniow z optymistyczn obliczeniow: pierwsza moe by lepsza od drugiej

pierwsza jest (zawsze)gorsza od drugiej mog by sobie rwne pierwsza jest (zawsze) nie lepsza od drugiej

Porwnujc (dla danego algorytmu) zoono pesymistyczn obliczeniow z oczekiwan obliczeniow: pierwsza jest (zawsze)gorsza od drugiej mog by sobie rwne pierwsza moe by lepsza od drugiej

Porwnujc (dla danego algorytmu) zoono oczekiwan obliczeniow z oczekiwan pamiciow: pierwsza jest (zawsze) gorsza od drugiej pierwsza jest (zawsze) nie lepsza od drugiej mog by sobie rwne Porwnujc (dla danego algorytmu) zoono oczekiwan obliczeniow z optymistyczn pamiciow: mog by sobie rwne pierwsza jest (zawsze) nie lepsza od drugiej pierwsza jest (zawsze) gorsza od drugiej List, ze zmodyfikowan operacj get, ktry przesuwa dany element na pocztek listy: warto uywa dla losowych danych zawsze warto uywa, kiedy wikszo operacji, to operacje get warto uywa, kiedy wikszo operacji tyczy si jednego elementu warto uywa, kiedy wikszo operacji get tyczy si rnych elementw tej listy warto uywa, kiedy wikszo operacji get tyczy si maego podzbioru elementw tej listy List, ze zmodyfikowan operacj get, ktry przesuwa dany element na koniec listy: warto uywa, dla losowych danych warto uywa, kiedy wikszo operacji get tyczy si maego podzbioru elementw tej listy warto uywa, kiedy wikszo operacji tyczy si jednego elementu zawsze warto uywa, kiedy wikszo operacji, to operacje get warto uywa, kiedy wikszo operacji get tyczy si rnych elementw tej listy

Porwnujc (dla danego algorytmu) zoono pesymistyczn pamiciow z oczekiwan obliczeniow: mog by sobie rwne pierwsza jest (zawsze) nie lepsza od drugiej

pierwsza jest (zawsze) gorsza od drugiej Porwnujc (dla danego algorytmu) zoono pesymistyczn pamiciow z oczekiwan pamiciow: pierwsza jest (zawsze) gorsza od drugiej pierwsza jest (zawsze) nie lepsza od drugiej pierwsza moe by lepsza od drugiej

B-drzewo: jest drzewem zrwnowaonym jest drzewem binarnym jest drzewem binarnym penym jest drzewem AVL ma operacj sumowania elementw w czasie Drzewo AVL: koszt pesymistyczny wyszukiwania elementu wynosi O(logn) jest drzewem BST jest drzewem binarnym

Ktre z wymienionych wasnoci s prawdziwe dla kopcw-drzew? Ksztat kopca nie zaley od kolejnoci wstawiania elementw Jeeli wierzchoek kopca nie ma lewego nastpnika, to nie ma take prawego nastpnika Jeeli wierzchoek kopca nie ma prawego nastpnika, to iest liciem

Ktre z wymienionych wasnoci s prawdziwe dla kopcw-drzew? W kopcu wszystkie cieki od korzenia do licia maj t sam dugo Cig elementw dowolnego poziomu kopca jest uporzdkowany malejco od lewej do prawej strony Liczba wierzchokw w kopcu o elementach, ktre s jednoczenie licimi wynosi co najwyej

Ktre z wymienionych zda jest prawdziwe? Algorytm QuickSort wykonuje dla danych uporzdkowanych co najwyej tyle porwna co algorytm InsertionSort Wysoko drzewa rekurencyjnych wywoa algorytmu MergeSort, zastosowanego do cigu o elementach, jest rzdu Drzewo AVL o wysokoci 3 ma Co najmniej 7 wzw Co najmniej 6 krawdzi Co najwyej 7 lici

Mnoenie dwch n-cyfrowych liczb da si wykona w czasie O(n^log2^3) O(n^2) O(n) O(nlogn) O(log(n!)) Jeeli pewien algorytm dziaa w pesymistycznym czasie O(nlogn) dla danych wielkoci n, to bdzie dziaa w pesymistycznym czasie O(nlogn) rwnie dla danych wielkoci: n^2 n+1 log(n!) 2n 2n + 2ln n nlogn logn Jeeli pewien algorytm dziaa w pesymistycznym czasie O(n^2) dla danych wielkoci n, to bdzie dziaa w pesymistycznym czasie O(n^2) rwnie dla danych wielkoci: logn n^2 nlogn Dana jest funkcja haszujca h(i) = i mod17 oraz rehaszujca r(i) = (i +3) mod 17 Korzystajc z tych funkcji wprowadzamy do pocztkowo pustej tablicy intA[16] kolejno wartoci: 6,0,20,13,3,17. Po wprowadzeniu tych liczb: trzy liczby znajduj si pod indeksami im rwnymi (cztery 6,0,13,3) 3 wystpuje przed 6 17 znajdzie si po wszystkich wprowadzonych wartociach 0 poprzedza wszystkie inne wprowadzone wartoci Algorytm Karacuby analizy i obrbki sygnaw dwikowychmnoenia wielomianw sortowania mnoenia liczb przechodzenia grafu Porwnujc implementacj kolejek prioretytowych z funkcj deletemin za pomoc kopcw oraz drzew lewicowych widzimy wady i zalety obu metod. Zweryfikuj poprawno podanych poniej stwierdze przy zaoeniu, e interesuj nas zoonoci asymptotyczne, ktre jeli s rwne, to obie metody uznajemy za rwnowane, a nie e jedna jest lepsza od drugiej: Dodawanie nowego elementu jest szybsze w przypadku kopca Zczanie dwch kolejek w jedn jest szybsze w przypadku drzew lewicowych Tworzenie od zera kolejki priorytetowej z nieuporzadkowanej listy jest szybsze w przypadku kopcw Kopiec n-elementowy mona: Utworzy w czasie O(n) Scali z innym kopcem n-elementowym (czyli utworzy nowy kopiec z tych dwch) w czasie O(n) Rozebra w czasie O(n) Przeksztaci w kopiec odwrotny(z najmniejszym, a nie najwikszym elementem w kadym korzeniu) w czasie O(n)

Sortowanie radix sort pozwala posortowa n-elementw szybciej ni w czasie O(nlogn) m.in dziki temu e: Nie wykonujemy bezporednich operacji na elementach, tylko odwoujemy si do ich reprezentacji bitowych Reprezentacje elementw z sortowanego zbioru maj okrelon i sta ze wzgldu na n dugo liczon w To nie jest prawda, e radixsort moe sortowa za pomoc mniej ni O(nlogn) operacji Algorytm liniowy wyszukiwania k-tego elementu w zbiorze n-elementowym zwany jest algorytmem magicznyc pitek...: Jest liczb nieparzyst, a czwrka, cho rwnie dobra, dawaaby rezultaty te dobre, ale z gorsz sta Jest jedyn liczb, ktra spowoduje, e koszt spadnie do liniowego Jest liczb najmniejsz moliw, a testy pokazay e optymaln w rednim przypadku pord wszy(?) Stabilne s algorytmy sortowania: Insertionsort MergeSort QuickSort Selectionsort HeapSort CountSort Za pomoc przeszukiwania grafu wszerz mona rozwiza problem: Wyznaczania dugoci najkrtszej cieki w grafie nieskierowanym z identycznymi dodatnimi wagami na krawdziach Wyznaczania dugoci najkrtszej cieki w grafie skierowanym z identycznymi dodatnimi wagami na krawdziach Wyznaczania dugoci najkrtszej cieki w grafie z dodatnimi cakowitymi wagami na krawdziach Dla posortowanej niemalejco tablicy A nastpujcy algorytm: I=0; p=n-1; while (l<p) { s = (l+p+l) / 2 if(x< A[s]) p = s -1; else l = s; return l; }: zawsze dziaa w czasie O(logn) oblicza indeks ostatniego wystpienia najmniejszej liczby co najmniej rwnej x oblicza indeks pierwszego wystpienia najmniejszej liczby co najmniej rwnej x moe si zaptli oblicza indeks ostatniego wystpienia najwikszej liczby nieprzekraczajcej x oblicza indeks ostatniego wystpienia najmniejszej liczby nieprzekraczajcej x oblicza indeks ostatniego wystpienia x w A (tak jezeli x istnieje) oblicza indeks pierwszego wystpienia x w A oblicza indeks pierwszego wystpienia najwikszej liczby nieprzekraczajcej x Przy haszowaniu otwartym z uporzdkowanymi listami wykonanie k operacji insert do pustej n-...: pesymistycznie kosztuje O(n+k) pesymistycznie kosztuje O(n^2) pesymistycznie kosztuje O(k^2)

Przy zaoeniu, e n>0, a przy tym n jest liczb parzyst, za k jest liczb cakowit nieparzyst, dla ptli j=n; x=k; while(j!=0) { x+=j; j--; } poprawnym niezmiennikiem jest: x>=0 j>=0 jeli ptla wykonaa co najmniej 4 obroty, to parzysto x oraz j s takie same, jak cztery obroty ptli wczeniej parzysto zmiennych j oraz x s zawsze rne Spord nastpujcych rzdw zoonoci minimalne s: O(nlogn) O(log10 2^n) O(ln 2^n) O(ln 2n)

Niech , , , oznaczaj odpowiednio funkcje opisujce redni zoono czasow algorytmw odpowiednio InsertionSort, SelectionSort, MergeSort, QuickSort. Wska poprawne zalenoci.

Kady algorytm sortowania cigu najgorszym wykona: porwna porwna Rzdu

elementowego, w modelu drzew decyzyjnych, musi w przypadku

razy tyle porwna ile w przypadku cigu wejciowego dugoci

W cigu uporzdkowanym rosnco szukamy metod binarnych poszukiwa takiego , by , dla pewnego ustalonego . Jakiej dugoci jest przeszukiwany cig, jeli wykonalimy dokadnie porwna? Cig ma okoo elementw elementw -stu porwna i tej samej metody postpowania Cig ma co najwyej

Dokadnie tyle samo ile w przypadku

Dany jest elementowy cig uporzdkowany, gdzie jest podzielene przez . Ktry z algorytmw wyszukiwania ma mniejszy koszt w najgorszym przypadku: Sekwencyjny ze skokami co Rozwaane algorytmy maj zawsze dokadnie taki sam koszt wykonania, nie zalenie od dugoci

cigu algorytm sekwencyjny ze skokami co , czy algorytm ze skokami co ?Oba algorytmy wykonuj asymptotycznie tak sam liczb porwna w przypadku pesymistycznym

Ktry z podanych poniej cigw jest asymptotycznie rosncym cigiem funkcji zmiennej n w dziedzinie liczb naturalnych dodatnich: 2n, (3!)n/2, (32)n/2, (n/2)!, n!-7n, nn/3 2n-1, lg(lg(n!)), lg(n)-3, n1/3, n3, 2n, 3n-2 lg(n), lg(n!), n2, n2-n, n3+100, lg(n)n!, n!

Mamy pewien algorytm o zoonoci obliczeniowej O(n2), zmierzylimy czas dziaania dla pewnych danych o duej liczbie elementw, rwnej n i czas wynis t. Szacunkowo, algorytm w cigu 4t, jest w stanie przetworzy dane o wielkoci 2n Szacunkowo, algorytm w cigu 16t, jest w stanie przetworzy dane o wielkoci 8n Szacunkowo, algorytm w cigu 8t, jest w stanie przetworzy dane o wielkoci 2n Szacunkowo, algorytm dla danych wielkoci 4n, bdzie dziaa 4t. Szacunkowo, algorytm w cigu 64t, jest w stanie przetworzy dane o wielkoci 8n + +

Niech f(n)=n 2 lg(n), wtedy prawd jest, e: f(n) f(n)=?(n3) f(n) f(n)= ?(n3) f(n) =O(n3) f(n) = ? (2n) f(n)=? (n2) f(n)+f(n)=?(n3) f(n)+f(n)=O(n3)

Pesymistycznie operacja wyszukiwania elementu w n-elementowym drzewie AVL: Niech f(n)=n 2 lg(n), wtedy prawd jest, e: - (0) wymaga ?(logn) pamici ma zoono obliczeniow O(lg n) wymaga ?(1) pamici

Rozpatrujemy cakowit poprawno algorytmu, poprzez metod niezmiennikw ptli. Jestemy w miejscu, tu po zakoczeniu ptli. Wiemy, e: zachodzi zaprzeczenie dozoru ptli zachodzi zaprzeczenie dozoru ptli oraz niezmiennik ptli z ostatniej iteracji zachodzi dozr ptli oraz niezmiennik ptli z ostatniej iteracji

Niech D bdzie drzewem decyzyjnym dla pewnego algorytmu sortowania przez porwnania zastosowanego do danych wejciowych rozmiaru n, wtedy: liczba lici w drzewie D jest co najwyej rzdu n2 liczba lici w drzewie D jest co najmniej rzdu nn wysoko drzewa D jest rzdu co najwyej lg(n!) wysoko drzewa D jest rzdu co najmniej lg(n!)

Jeeli pewien algorytm dziaa w pesymistycznym czasie O(logn) dla danych wielkoci n, to bdzie dziaa w pesymistycznym czasie O(logn) rwnie dla danych wielkoci: 2n logn n2

Rozwamy graf peny z wagami G=(V,E), gdzie |V| =n, wtedy: rozmiar tablicy list incydencji grafu G jest rzdu ?(n2) rozmiar macierzy ssiedztwa grafu G jest rzdu ?(n2) rozmiar macierzy ssiedztwa grafu G jest rzdu ?(n) rozmiar tablicy list incydencji grafu G jest rzdu ?(n) rozmiar tablicy list incydencji grafu G jest rzdu ?(n)

Rozwamy zastosowanie algorytmu sortowania przez scalanie MS do uporzdkowanych nierosnco danych wejciowych X rozmiaru n, wtedy: T(MS(X),n)= ?(lg(n!)) w tym przypadku wysoko drzewa wywoa rekurencyjnych algorytmu MS bdzie nie mniejsza ni n T(MS(X),n)= O(n)

Niech Alg bdzie optymalnym algorytmem dla problemu wyszukania pewnego elementu(zakadamy, e takowy istnieje) w n-elementowym nieuporzdkowanym uniwersum, wtedy: A(Alg, n)= ?(nxlg(n)) W(Alg, n)=O(n1/2) A(Alg, n)=O(W(Alg,n)) Rozwamy graf G=(V,E), gdzie |V|=n i n>10, w ktrym algorytmy DFS oraz BFS generuj ten sam cig etykiet odwiedzanych wierzchokw z pewnego wierzchoka rdowego, wtedy graf G moe by: grafem-drzewem binarnym wysokoci ?(lg(n)) grafem pustym

grafem-gwiazd, tj. grafem spjnym takim, e kady wierzchoek tego grafu ma rzd rwny 1 za wyjtkiem wierzchoka centralnego, ktrego rzd jest rwny n-1 grafem-drzewem binarnym wysokoci n-1

Jakie jest najlepsze oszacowanie na zoono problemu znajdowania najwikszego elementu w posortowanej tablicy rozmiaru n: O(n) O(lgn) O(1)

Spord nastpujcych rzdw zoonoci minimalne s: O(2log n) O(n log n) O(ln 2n)

Spord nastpujcych rzdw zoonoci minimalne s: O(ln 2n) O(log102n) O(nlogn)

Jeeli pewien algorytm dziaa w pesymistycznym czasie O(n) dla danych wielkoci n, to bdzie dziaa w pesymistycznym czasie O(n) rwnie dla danych wielkoci: n+1 2n 2n + 2ln n logn nlogn 2n + 2ln n n2

Ktre z niej wymienionych wymagaj co najmniej O(n) dodatkowej pamici: SelectionSort CountSort Sortowanie bbelkowe

Mamy graf niekierowany: a--b, b--c, c --a. Wykonujemy na nim DFS z punktu a i oznaczamy

czasy rozpoczcia i zakoczenia. Notujc x (p/f), gdzie x-wierzchoek, p-czas rozpoczcia, f-czas zakoczenia przetwarzania, moemy otrzyma: - (0) a(0/5), b(1/2), c(3/4) a(0/5), b(1/3), c(2/4) a(0/3), b(1/4), c(2/5)

Ile czasu potrzeba na zrealizowanie zadania o rozmiarze

na ustalonym komputerze, jeli jest rozmiarem danych

zoono uytego algorytmu jest okrelona funkcj , gdzie wejciowych, a zadanie o rozmiarze wykonuje si w czasie sek.? Jeli Jeli Jeli , to czas wynosi sek. , to czas wynosi sek. , to czas wynosi sek.

Ile czasu potrzeba na zrealizowanie zadania o rozmiarze

na ustalonym komputerze, jeli

zoono algorytmu jest okrelona funkcj , gdzie jest rozmiarem danych wejciowych, a zadanie o rozmiarze wykonuje si w czasie sek.? - (0) Jeli Jeli Jeli , to czas wynosi , to czas wynosi , to czas wynosi sek. sek. sek.

Oszacuj koszt algorytmu skoki co porwna Co najmniej porwnania, gdy

zastosowanego do uporzdkowanego cigu

elementowego.

, niezalenie od dugoci skoku na ustalonym komputerze, jeli

porwna Ile czasu potrzeba na zrealizowanie zadania o rozmiarze zoono algorytmu jest okrelona funkcj , gdzie jest rozmiarem danych wejciowych, a zadanie o rozmiarze wykonuje si w czasie sek.? - (0) Jeli Jeli Jeli , to czas wynosi , to czas wynosi , to czas wynosi sek. sek. sek.

Wska poprawne oszacowania.

Jaki jest maksymalny rozmiar zadania, ktre mona rozwiza algorytmem o zoonoci

gdzie jest rozmiarem danych wejciowych, w czasie rozmiarze zajmuje sek.?

min., jeeli wykonanie zadania o

Powysze dane nie pozwalaj sformuowa jednoznacznej odpowiedzi

Ile razy zostanie wywoana procedura scalania, jeli algorytm MergeSort zastosowano do posortowania cigu o elementach, gdzie ? Co najwyej Co najwyej Rzdu razy -elementowego cigu razy

Rozwamy algorytm sortowania CountingSort zastosowany do sortowania binarnego . Ktre z poniszych zda jest prawdziwe w tym przypadku?

Jaki jest maksymalny rozmiar zadania, ktre mona rozwiza algorytmem o zoonoci gdzie jest rozmiarem danych wejciowych, w czasie min., jeeli wykonanie zadania o rozmiarze zajmuje sek.? Powysze dane pozwalaj sformuowa jednoznaczn odpowied Ile maksymalnie elementw mona jeszcze umieci w kopcu, w ktrym jest ju by nie zwikszy jego wysokoci? , gdy , gdy Tyle samo dla , co dla Jeeli pewien algorytm dziaa w pesymistycznym czasie O(logn) dla danych wielkoci n, to bdzie dziaa w pesymistycznym czasie O(logn) rwnie dla danych wielkoci n+1 2n n2 logn Mnoenie dwch n-cyfrowych liczb da si wykona w czasie: O(nlogn) O(n2)(1) O(nlog23)(1) Aby otrzyma B-drzewo o wysokoci 2 dla t=5

wierzchokw, tak

wstawi co najwyej 1000 elementw doprowadzi do sytuacji, w ktrej cznie bdzie co najmniej 9 wzw ustali jego stopie na co najmniej 5 naley po zainicjalizowaniu pustego drzewa wstawi co najmniej 25 elementw