Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

521144A, Algoritmit ja Tietorakenteet, syksy 2013

Samankaltaiset esitykset


Esitys aiheesta: "521144A, Algoritmit ja Tietorakenteet, syksy 2013"— Esityksen transkriptio:

1 521144A, Algoritmit ja Tietorakenteet, syksy 2013
Kertausluento

2 Sisältö (1/2) 1. Johdanto 2. Algoritmien analyysi
1.1 Algoritmeista ja tietorakenteista 1.2 Johdanto algoritmien analyysiin 1.3 Funktioiden kasvusta 2. Algoritmien analyysi 2.1. Algoritmien oikeellisuus 2.2. Algoritmien suorituskyvyn analyysi 2.3. Iteratiivisten algoritmien analyysi 2.4. Rekursiivisten algoritmien analyysi 3. Lajittelualgoritmeista 3.1 Pikalajittelu (Quicksort) Luento: Prioriteettijonot 3.2 Kekolajittelu (Heapsort)

3 Sisältö (2/2) 4. Tietorakenteita 5. Verkkoalgoritmeja
4.1 Abstrakti määritelmä 4.2 Alkeistietorakenteet 4.3 Hashtaulukot 4.6Tietorakenteiden täydentäminen 5. Verkkoalgoritmeja 5.1 Leveyshaku 5.2 Syvyyshaku 5.3 Kruskalin algoritmi 5.4 Dijkstra algoritmi

4 MIKSI ALGORITMEJA ANALYSOIDAAN?
Varmistamaan algoritmin oikea toiminta, ts. algoritmin päättyminen ja asianmukainen tulos Oikeellisuus Algoritmin suorituskyvyn tarkastelu suorituskyky tarkoittaa sen kuluttamien resurssien määrää ja algoritmin kuluttamaa aikaa suhteessa syötteeseen, jälkimmäinen aikakompleksisuus

5 II.1.1.2 Esimerkki: Taulukon arvojen minimi
Syöte: Taulukko A[1,..,n], n >= 1 Tulostus: Pienin luvuista A[1], … , A[n] MINIMI(A) 1. i = 2 2. x = A[1] 3. while i <= n 4. if A[i] < x then 5. x = A[i] 6. i = i+1 7. return x i on konvergentti Silmukkainvariantti: Kun i=k, rivillä 3 muuttujan x arvo on pienin taulukon arvoista A[1], …, A[k-1] Ari Vesanen, Tietojenkäsitttelytieteiden laitos, Oulun yliopisto

6 1<𝑙𝑔𝑛<𝑛<𝑛𝑙𝑔𝑛< 𝑛 2 < 𝑛 3 < 𝑎 𝑛 , 𝑎>1
Funktioiden kasvu Ongelman kompleksisuustyyppiä määriteltäessä voidaan käyttää esimerkiksi termejä "polynomisessa ajassa ratkeava" ja "eksponentiaalinen ongelma". Esim. Jos algoritmin kompleksisuusluokka on Θ(n^k) (tai O(n^k)) sitä sanotaan polynomiaikaiseksi Polynomiaikaisia algoritmeja pidetään laskennallisesti sovellettavina 1<𝑙𝑔𝑛<𝑛<𝑛𝑙𝑔𝑛< 𝑛 2 < 𝑛 3 < 𝑎 𝑛 , 𝑎>1 Polynomit kasvavat hitaammin kuin eksponentit, logaritmit kasvavat hitaammin kuin polynomit. Iteratiiviset algoritmit: Laske kokonaissuoritusaika kertomalla aika jokaisen operaation taajuudella, lopuksi summaa tulot Rekursiiviset algoritmit: Rekursiopuun avulla tarkastelu Induktiivinen päättely Rekursioyhtälön muodostaminen ja ”Master Theorem”

7 Lajittelualgoritmeja
Lisäyslajittelu, Insertion sort, Ο(n²) Lomituslajittelu, Merge sort, O(n log n) Pikalajittelu, Quicksort, O(n log n) Kekolajittelu, Heapsort, O(n log n) Vertailuun perustuva lajittelualgoritmi ei voi olla nopeampi kuin luokkaa O(n log n). On olemassa myös lineaariajassa toimivia lajittelualgoritmeja.

8 Tietorakenteet Tietorakenne on äärellinen dynaaminen joukko, joka toteuttaa rajapintanaan sarjan operaatioita joiden kautta algoritmi voi muokata joukkoa. Alkiot: avain, järjestysdata, satelliittidata Operaatiot: etsi, lisää, poista, minimi, maksimi, seuraaja, edeltäjä Pino (LIFO), jono (FIFO), linkitetty lista Hash-taulukko, binäärinen etsintäpuu Puna-mustat puut Tietorakenteen täydentäminen Järjestystunnuspuu, intervallipuut

9 Verkkoalgoritmit Rakenne ja esitystavat Leveyshaku Syvyyshaku
Vieruslista, matriisiesitys Leveyshaku Syvyyshaku Kruskalin algoritmi (pienin virittävä puu) Dijkstran algoritmi (kevein polku lähtösolmusta s)

10 Laskuharjoitukset Viikot 45, 46, 49
Osallistumisesta 5p/kerta, yht. Max 15p TOL järjestää O-notaatio, algoritmien oikeellisuus ja aikakompleksisuus Master Theorem-soveltaminen, lajittelualgoritmit Verkkojen leveys- ja syvyyshakualgoritmit

11 Ohjelmointiharjoitukset
Viikot 48, 50 Ohjelmointiharjoituksen työselostus on palautettava kurssisuoritusta varten Sisältää esitehtävän sekä labraharjoituksen 1. harj. palautuksen takaraja 2. harj. palautuksen takaraja 20p + 20p, yht. max 40 p Huomatkaa, että Noppa lisää etuliitteen koodinpätkiin, poistakaa se tallennusvaiheessa!

12 Harjoitustyö Työselostus ohjelmointikoodeineen palautettava viimeistään Opiskelijan tulee varata aika lopputyön arviointisessioon palautuksen jälkeen. Arviointi: max 30 p

13 Kurssin arvostelu Tavoite: Arvosanat opiskelijoille 31.1.2014
Laskarit, labraharkat, harj.työ Max: 15p+40p+30p=85p Läpipääsyyn vaaditaan 40p


Lataa ppt "521144A, Algoritmit ja Tietorakenteet, syksy 2013"

Samankaltaiset esitykset


Iklan oleh Google