Algoritmi i strukture podataka - 1.cas

Σχετικά έγγραφα
Algoritmi i strukture podataka

3.1 Granična vrednost funkcije u tački

Elementi spektralne teorije matrica

Zadaci sa prethodnih prijemnih ispita iz matematike na Beogradskom univerzitetu

SISTEMI NELINEARNIH JEDNAČINA

UNIVERZITET U NIŠU ELEKTRONSKI FAKULTET SIGNALI I SISTEMI. Zbirka zadataka

Osnovne teoreme diferencijalnog računa

Ispitivanje toka i skiciranje grafika funkcija

IZVODI ZADACI (I deo)

Sortiranje prebrajanjem (Counting sort) i Radix Sort

Računarska grafika. Rasterizacija linije

Osnovni primer. (Z, +,,, 0, 1) je komutativan prsten sa jedinicom: množenje je distributivno prema sabiranju

DISKRETNA MATEMATIKA - PREDAVANJE 7 - Jovanka Pantović

IZVODI ZADACI ( IV deo) Rešenje: Najpre ćemo logaritmovati ovu jednakost sa ln ( to beše prirodni logaritam za osnovu e) a zatim ćemo

Klasifikacija blizu Kelerovih mnogostrukosti. konstantne holomorfne sekcione krivine. Kelerove. mnogostrukosti. blizu Kelerove.

Konstruisati efikasan algoritam znači dati skup preciznih uputstava kako doći do rešenja zadatog problema Algoritmi se mogu opisivati:

Pismeni ispit iz matematike GRUPA A 1. Napisati u trigonometrijskom i eksponencijalnom obliku kompleksni broj, zatim naći 4 z.

Računarska grafika. Rasterizacija linije

PRAVA. Prava je u prostoru određena jednom svojom tačkom i vektorom paralelnim sa tom pravom ( vektor paralelnosti).

Algoritmi zadaci za kontrolni

MATRICE I DETERMINANTE - formule i zadaci - (Matrice i determinante) 1 / 15

Univerzitet u Nišu, Prirodno-matematički fakultet Prijemni ispit za upis OAS Matematika

Iskazna logika 3. Matematička logika u računarstvu. novembar 2012

IZRAČUNAVANJE POKAZATELJA NAČINA RADA NAČINA RADA (ISKORIŠĆENOSTI KAPACITETA, STEPENA OTVORENOSTI RADNIH MESTA I NIVOA ORGANIZOVANOSTI)

a M a A. Može se pokazati da je supremum (ako postoji) jedinstven pa uvodimo oznaku sup A.

Pismeni ispit iz matematike Riješiti sistem jednačina i diskutovati rješenja sistema u zavisnosti od parametra: ( ) + 1.

4.7. Zadaci Formalizam diferenciranja (teorija na stranama ) 343. Znajući izvod funkcije x arctg x, odrediti izvod funkcije x arcctg x.

Zavrxni ispit iz Matematiqke analize 1

ELEKTROTEHNIČKI ODJEL

SOPSTVENE VREDNOSTI I SOPSTVENI VEKTORI LINEARNOG OPERATORA I KVADRATNE MATRICE

5. Karakteristične funkcije

Apsolutno neprekidne raspodele Raspodele apsolutno neprekidnih sluqajnih promenljivih nazivaju se apsolutno neprekidnim raspodelama.

5 Ispitivanje funkcija

RIJEŠENI ZADACI I TEORIJA IZ

IspitivaƬe funkcija: 1. Oblast definisanosti funkcije (ili domen funkcije) D f

Univerzitet u Nišu Građevinsko-arhitektonski fakultet. Informatika2. 4. Ciklična algoritamska struktura 5. Jednodimenzionalno polje.

M086 LA 1 M106 GRP. Tema: Baza vektorskog prostora. Koordinatni sustav. Norma. CSB nejednakost

Algoritmi i strukture podataka (450)

PARCIJALNI IZVODI I DIFERENCIJALI. Sama definicija parcijalnog izvoda i diferencijala je malo teža, mi se njome ovde nećemo baviti a vi ćete je,

18. listopada listopada / 13

41. Jednačine koje se svode na kvadratne

XI dvoqas veжbi dr Vladimir Balti. 4. Stabla

Obrada signala

( ) ( ) 2 UNIVERZITET U ZENICI POLITEHNIČKI FAKULTET. Zadaci za pripremu polaganja kvalifikacionog ispita iz Matematike. 1. Riješiti jednačine: 4

for <brojacka_promenljiva> := <pocetna_vrednost> to <krajnja_vrednost> do <naredba>

Jednodimenzionalne slučajne promenljive

Ορισµός. Εστω συναρτήσεις: f : N R και g : N R. η f(n) είναι fi( g(n) ) αν υπάρχουν σταθερές C 1, C 2 και n 0, τέτοιες ώστε:

RAČUNSKE VEŽBE IZ PREDMETA POLUPROVODNIČKE KOMPONENTE (IV semestar modul EKM) IV deo. Miloš Marjanović

Teorijske osnove informatike 1

Zadaci iz trigonometrije za seminar

6. Zavisnosti po podacima u programskim petljama

Determinante. Inverzna matrica

2 tg x ctg x 1 = =, cos 2x Zbog četvrtog kvadranta rješenje je: 2 ctg x

Diferencne jednačine

Betonske konstrukcije 1 - vežbe 3 - Veliki ekscentricitet -Dodatni primeri

numeričkih deskriptivnih mera.

Program testirati pomoću podataka iz sledeće tabele:

Prvi kolokvijum. y 4 dy = 0. Drugi kolokvijum. Treći kolokvijum

Fakultet tehničkih nauka, Softverske i informacione tehnologije, Matematika 2 KOLOKVIJUM 1. Prezime, ime, br. indeksa:

Matematička analiza 1 dodatni zadaci

radni nerecenzirani materijal za predavanja R(f) = {f(x) x D}

Cauchyjev teorem. Postoji više dokaza ovog teorema, a najjednostvniji je uz pomoć Greenove formule: dxdy. int C i Cauchy Riemannovih uvjeta.

Deljivost. 1. Ispitati kada izraz (n 2) 3 + n 3 + (n + 2) 3,n N nije deljiv sa 18.

Trigonometrijske nejednačine

III VEŽBA: FURIJEOVI REDOVI

4 Numeričko diferenciranje

Algebarske strukture sa jednom operacijom (A, ): Ako operacija ima osobine: zatvorenost i asocijativnost, onda je (A, ) polugrupa

Strukture podataka i algoritmi 1. kolokvij 16. studenog Zadatak 1

DRUGI KOLOKVIJUM IZ MATEMATIKE 9x + 6y + z = 1 4x 2y + z = 1 x + 2y + 3z = 2. je neprekidna za a =

Operacije s matricama

radni nerecenzirani materijal za predavanja

APROKSIMACIJA FUNKCIJA

FTN Novi Sad Katedra za motore i vozila. Teorija kretanja drumskih vozila Vučno-dinamičke performanse vozila: MAKSIMALNA BRZINA

(y) = f (x). (x) log ϕ(x) + ψ(x) Izvodi parametarski definisane funkcije y = ψ(t)

INTELIGENTNO UPRAVLJANJE

PID: Domen P je glavnoidealski [PID] akko svaki ideal u P je glavni (generisan jednim elementom; oblika ap := {ab b P }, za neko a P ).

1 Afina geometrija. 1.1 Afini prostor. Definicija 1.1. Pod afinim prostorom nad poljem K podrazumevamo. A - skup taqaka

Linearna algebra 2 prvi kolokvij,

Matematka 1 Zadaci za drugi kolokvijum

S t r a n a 1. 1.Povezati jonsku jačinu rastvora: a) MgCl 2 b) Al 2 (SO 4 ) 3 sa njihovim molalitetima, m. za so tipa: M p X q. pa je jonska jačina:

Trigonometrija 2. Adicijske formule. Formule dvostrukog kuta Formule polovičnog kuta Pretvaranje sume(razlike u produkt i obrnuto

1 Promjena baze vektora

Dvanaesti praktikum iz Analize 1

Složenost. Programiranje 2-1. Analiza programa. Vreme. Izračunavanje T. Prostor. D. Vitas

Δομές Δεδομένων και Αλγόριθμοι

1. Pojam fazi skupa. 2. Pojam fazi skupa. 3. Funkcija pripadnosti, osobine i oblici. 4. Funkcija pripadnosti, osobine i oblici

π π ELEKTROTEHNIČKI ODJEL i) f (x) = x 3 x 2 x + 1, a = 1, b = 1;

TRIGONOMETRIJA TROKUTA

Sistemi veštačke inteligencije primer 1

Εισαγωγή στην Ανάλυση Αλγορίθμων (2-3)

INTEGRALNI RAČUN. Teorije, metodike i povijest infinitezimalnih računa. Lucija Mijić 17. veljače 2011.

Linearna algebra 2 prvi kolokvij,

Zadatak 2 Odrediti tačke grananja, Riemann-ovu površ, opisati sve grane funkcije f(z) = z 3 z 4 i objasniti prelazak sa jedne na drugu granu.

Veleučilište u Rijeci Stručni studij sigurnosti na radu Akad. god. 2011/2012. Matematika. Monotonost i ekstremi. Katica Jurasić. Rijeka, 2011.

TERMALNOG ZRAČENJA. Plankov zakon Stefan Bolcmanov i Vinov zakon Zračenje realnih tela Razmena snage između dve površine. Ž. Barbarić, MS1-TS 1

Geometrija (I smer) deo 1: Vektori

ELEMENTARNA MATEMATIKA 2

POGLAVLJE 1 BEZUSLOVNA OPTIMIZACIJA. U ovom poglavlju proučavaćemo problem bezuslovne optimizacije:

KOMUTATIVNI I ASOCIJATIVNI GRUPOIDI. NEUTRALNI ELEMENT GRUPOIDA.

ELEMENTARNE FUNKCIJE dr Jelena Manojlović Prirodno-matematički fakultet, Niš

Transcript:

Algoritmi i strukture podataka - 1.cas Aleksandar Veljković October 2016 Materijali su zasnovani na materijalima Mirka Stojadinovića 1 Složenost algoritama Približna procena vremena ili prostora potrebnog za izvršavanje algoritma Konstantni faktori se zanemaruju Procena složenosti se vrši u zavisnosti od veličine ulaznih podataka - n 1.1 Odabir reprezentativnog ulaza veličine n za procenu složenosti algoritma Najgori slučaj Prosečan slučaj Benchmarks 1.2 Notacija O: Neka su f(n) i g(n) pozitivne funkcije, f(n) pripada O(g(n)) ako i samo ako postoje konstante c i N > 0 takve da važi: f(n) c g(n) za svako n>n Pripadnost f(n) klasi O(g(n)) označavamo sa f(n) = O(g(n)) ili f(n) O(g(n)). Ω: Neka su f(n) i g(n) pozitivne funkcije, f(n) pripada Ω(g(n)) ako i samo ako postoje konstante c i N > 0 takve da važi: f(n) c g(n) za svako n>n 1

Pripadnost f(n) klasi Ω(g(n)) označavamo sa f(n) = Ω(g(n)) ili f(n) Ω(g(n)). Θ: Neka su f(n) i g(n) pozitivne funkcije, f(n) pripada Θ(g(n)) ako i samo ako postoje konstante c, N 1 i N 2 > 0 takve da važi: c 1 g(n) f(n) c 2 g(n) za svako n>max{n 1, N 2 } Drugim rečima, f(n) pripada Θ(g(n)) ako i samo ako istovremeno f(n) pripada O(g(n)) i Ω(g(n)) Pripadnost f(n) klasi Θ(g(n)) označavamo sa f(n) = Θ(g(n)) ili f(n) Ω(g(n)). o: Neka su f(n) i g(n) pozitivne funkcije, f(n) pripada o(g(n)) ako i samo ako važi: f(n) lim n g(n) = 0 ω: Neka su f(n) i g(n) pozitivne funkcije, f(n) pripada ω(g(n)) ako i samo ako važi: f(n) lim n g(n) = 1.3 Klase složenosti Konstantna - O(1) Sublinearna - O(logn), O(sqrt(n))... Linearna - O(n) Superlinearna - O(nlogn), O(n 2 )... Eksponencijalna - O(2 n ), O(3 n )... Primer 1. Odrediti vreme izvršavanja sledećeg programskog fragmenta. Rešenje prikazati polinomijalnim izrazom i u O notaciji: for(i = 1; i <= n; i++) suma = suma + i; 2

Rešenje 1 n + 1 n for(i = 1; i <= n; i++) 1 1 x n suma = suma + i; Inicijalizacija i = 1 se izvršava samo jednom, pri ulasku u petlju Provera ispunjenosti uslova i <= n se izvršava n puta kada je uslov ispunjen i jednom kada uslov nije ispunjen, pri čemu se tada ne ulazi u telo petlje Inkrementacija i + + se izvršava n puta Sabiranje + se izvršava jednom Dodela = se izvršava jednom Sabiranje i dodela se izvršavaju u okviru svake iteracije petlje (n puta) Ukupan broj koraka: 1 + n + 1 + n + n (1 + 1) = 4n + 2 Dokažimo da je 4n + 2 = O(n) Da bi važilo 4n+2 = O(n) potrebno je da pronadjemo konstante c i N >0 takve da je: 4n + 2 c n za svako n >N Za c = 6 i N = 1 nejednakost je ispunjena i time je dokazano da je složenost navedenog programskog fragmenta zaista O(n) Primer 2. Odrediti vreme izvršavanja sledećeg programskog fragmenta. Rešenje prikazati u O notaciji: i = 0; k = 1; while(k <= n) { k = k * 2; i = i + 1; } Rešenje i = 0; 1 k = 1; 1 while(k <= n) x log2n + 2 { x log2n + 1 3

1 1 k = k * 2; 1 1 i = i + 1; } Objašnjenje: Inicijalno promenljiva k predstavlja 2 0, uzastopnim množenjem k sa 2, dok se ne dostigne n, potrebno je log 2 n + 1 množenja, što je ujedno i broj iteracija petlje. Ipak, uslov se proverava još jednom kada nije ispunjen i otud broj provera log 2 n + 2. Primer za n = 5, vrednosti promenljive k pri svakoj proveri uslova su 1, 2, 4 i 8, uslov je ispunjen za vrednosti 1, 2 i 4, pa je broj provera uslova 4, broj iteracija petlje je 3, dok je log 2 5 = 2. Ukupan broj koraka: 1 + 1 + log 2 n + 2 + 4 ( log 2 n + 1) = 5 log 2 n + 8 = O(logn) Osnovu logaritma možemo izostaviti jer se logaritmi istog broja sa razlicitim osnovama razlikuju za konstantni faktor: log a n = log b n log b a = 1 log b a log b n pri čemu je 1 log b a konstantna vrednost. 1.4 Diferencne jednačine Složenost rekurzivnih algoritama računa se rešavanjem odgovarajućih diferencnih jednačina. Primer 3. Odrediti rešenje diferencne jednačine T (n) = 3T (n 1) + 2, sa početnim uslovom T (1) = 1. Rešenje Nehomogenu jednačinu svodimo na homogenu T (n) = 3T (n 1) T (n 1) = 3T (n 2) + 2 T (n) T (n 1) = 3T (n 1) 3T (n 2) T (n) 4T (n 1) + 3T (n 2) = 0 4

Formiramo nehomogenu jednačinu t n 4t n 1 + 3t n 2 = 0 / t2 t n t 2 4t + 3 = 0 Nule dobijene kvadratne jednačine su t 1 = 3 i t 2 = 1 Opšte rešenje jednačine tražimo u obliku: T (n) = c 1 t n 1 + c 2 t n 2 = c 1 3 n + c 2 1 n = c 1 3 n + c 2 Koeficijente c 1 i c 2 tražimo rešavanjem sistema: za n = 1, T (1) = c 1 3 + c 2 = 1 za n = 2, T (2) = c 1 9 + c 2 = 3T (1) + 2 = 5 Rešenja sistema su c 1 = 2 3 i c 2 = 1 pa je rešenje diferencne jednačine: T (n) = 2 3 3n 1 = 2 3 n 1 1 1.5 Primeri računanja vremenske složenosti algoritama za sortiranje Algoritam: SelectionSort(A) Ulaz: Niz A:[a 1, a 2,..., a n ] Izlaz: Niz A :[a 1, a 2,..., a n], a i A i = 1...n, a 1 a 2... a n begin for i := 1 to n do min_indeks := i for j := i + 1 to n do if A[j] <= A[min_indeks] then min_indeks := j tmp := A[i] A[i] := A[min_indeks] A[min_indeks] = tmp end 5

Petlja po i izvršava n iteracija. U okviru svake iteracije izvršava se n i iteracija petlje po j, pa je ukupan broj iteracija: n 1 i = 1 + 2 +... + n 1 = i=1 n(n + 1) 2 n = O(n 2 ) Algoritam: MergeSort(A) Ulaz: Niz A:[a 1, a 2,..., a n ] Izlaz: Niz A :[a 1, a 2,..., a n], a i A i = 1...n, a 1 a 2... a n begin if n <= 1 return A else L := A[a1,..., an/2] R := A[an/2+1,..., an] L := MergeSort(L) R := MergeSort(R) A := Merge(L, R) end return A Algoritam: Merge(L, R) Ulaz: L:[l 1, l 2,..., l n ], R:[r 2 1, r 2,..., r n ], l 2 1 l 2... l n, r 2 1 r 2... r n 2 Izlaz: Niz A :[a 1, a 2,..., a n], a i L ili a i R i = 1...n, a 1 a 2... a n begin j1 = 1 j2 = 1 for i := 1 to n do if (j2 > n/2 or L[j1] <= R[j2]) and j1 < n/2 then A [i] := L[j1] j1 := j1 + 1 else if j2 < n/2 then A [i] = R[j2] j2 := j2 + 1 return A end Složenost procedure Merge je O(n) Diferencna jednačina koja odgovara broju koraka algoritma MergeSort je T (n) = 2T ( n 2 ) + cn, gde je c konstanta, pa je složenost MergeSort algoritma O(nlogn). Dokažimo da je složenost MergeSort algoritma O(nlogn) 6

Početni rekurzivni poziv poziva dva rekurzivna poziva za ulaz veličine n 2 i izvršava proceduru Merge u cn koraka. Drvo rekurzije predstavljeno je sledećom slikom: cn - cn / \ cn/2 cn/2-2cn/2 = cn / \ / \ cn/4 cn/4 cn/4 cn/4-4cn/4 = cn / \ / \ / \ / \.......... c c c c c c c c... c - nc = cn Visina stabla rekurzije je log 2 n + 1 dok je suma svakog nivoa stabla jednaka cn, pa je ukupna suma celokupnog stabla jednaka (log 2 n+1) cn = cn log 2 n+cn = O(nlogn) 7