Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaBéla Tóth Megváltozta több, mint 8 éve
1
Hatékony-e a rekurzió? FÉLEGYHÁZI TAMÁS GÁBOR felegyhazi.tamas@gmail.com 1 Kovács Magda-díj pályázat 2015/16.
2
A pályamű használati értéke Cél: Bemutatni hagyományos algoritmusok nem hagyományos megvalósításait. Rekurzióval kapcsolatos előítéletek meg- vizsgálása, igazolása vagy cáfolása. Fejlett programozás-technikai eszközök felhasználásával. Kovács Magda-díj pályázat 2015/16. 2
3
Tartalomjegyzék Feladatspecifikáció Programozási tételek Rekurzió meghatározása Tervezés Felhasznált eszközök Implementáció Tesztelés Kapott eredmények Következtetések Hivatkozások Kovács Magda-díj pályázat 2015/16. 3
4
Feladatspecifikáció Elemi és összetett programozási tételek iteratív és rekurzív változatainak összehasonlítása hatékonyság szempontjából. Algoritmus működése. Beépített nyelvi elemek működése. Futási idők mérése nanoszekundumban. Kovács Magda-díj pályázat 2015/16. 4
5
Programozási tételek Elemi: Sorozatszámítás Eldöntés Kiválasztás (Lineáris) keresés Megszámolás Szélsőérték kiválasztás Összetett: Másolás Kiválogatás Szétválogatás Metszet Egyesítés Összefésülés Kovács Magda-díj pályázat 2015/16. 5
6
Rekurzió meghatározása „A rekurzió a ciklusnál bonyolultabb programszerkezet, s mindketten ugyanarra a célra szolgálnak: valamilyen tevékenység ismételt végrehajtására.” „A rekurzió megvalósítása igen nagy központi tárigénnyel járhat.” „A rekurzív megoldás sokszor „rettenetes” futási időnövekedést okoz.” „Az, hogy a matematikusok bevett eszközei és módszerei épülnek e fogalomra, még nem indokolja, hogy a számítástechnikában is használjuk.” „A rekurzió valami nagyon bonyolult dolog, inkább ne foglalkozzunk vele!” [1] Kovács Magda-díj pályázat 2015/16. 6
7
Model Adatok beolvasása adatbázisból a memóriába. Adatok előkészítése a feldolgozásra. Controller Vezérli a programot, kapcsolatot teremt a nézet és az adatszerkezet között. View Kovács Magda-díj pályázat 2015/16. 7 Tervezés
8
Felhasznált eszközök Oracle HR schema adatbázis Java 1.8.0_65-b17 NetBeans Kovács Magda-díj pályázat 2015/16. 8
9
Implementáció Log file Grafikon generálása Grafikon megjelenítése Tesztelés Kovács Magda-díj pályázat 2015/16. 9
10
Tesztelés Kovács Magda-díj pályázat 2015/16. 10
11
Kapott eredmények Programozási tételGyorsulás Sorozatszámítás – ciklus 0,049492 Eldöntés – rekurzív 0,131234 Kiválasztás – rekurzív 0,225806 (Lineáris) Keresés – rekurzív 0,048593 Megszámolás – ciklus 0,145105 Szélsőérték kiválasztás – ciklus 0,147615 Programozási tételGyorsulás Másolás – rekurzív 0,313641 Kiválogatás – rekurzív 0,466898 Szétválogatás – rekurzív 0,349467 Metszet – ciklus 0,739653 Egyesítés – rekurzív 0,181621 Összefésülés – rekurzív 0,305481 Programozási tételCiklusokkalRekurzív Sorozatszámítás 749788 Eldöntés 381331 Kiválasztás 434336 (Lineáris) Keresés 391372 Megszámolás 9781.144 Szélsőérték kiválasztás 11261.321 Másolás 17.46911.990 Kiválogatás 54682.915 Szétválogatás 4.6903.051 Metszet 9.08334.888 Egyesítés 17.48714.311 Összefésülés 13.7039.517 Kovács Magda-díj pályázat 2015/16. 11
12
Kovács Magda-díj pályázat 2015/16. 12 Program működése
13
Kovács Magda-díj pályázat 2015/16. 13 Program működése
14
Következtetések Meglepő: egyes tételeknél a rekurzív megvalósítás gyorsabb az iteratívnál. „Kritikus tömegre” „megéri” a rekurzivitást alkalmazni. Ugyanakkor a call stack erősen korlátozza a rekurzió mélységét, így a sorozat(ok) maximális hosszát. Kovács Magda-díj pályázat 2015/16. 14
15
Hivatkozások 1. Szlávi P., Zsakó L.: Módszeres programozás: Rekurzió, Mikrológia 4., ELTE TTK Informatikai Tanszékcsoport, 4. kiadás, 1997 2. Angster E.: Programozás tankönyv II., 4KÖR Bt., 5., javított kiadás, 1999, ISBN 963 450 957 6 II.K. 3. Angster E.: Objektumorientált tervezés és programozás, Java, 2. kötet, 4KÖR Bt., 2., átdolgozott kiadás, 2004, ISBN 963 216 513 6 4. Kaczur S.: Programozási alapok, 1. kiadás, 2009, ISBN 978-963-06-8122-3 5. Szlávi P., Zsakó L.: Módszeres programozás: Programozási tételek, Mikrológia 19., ELTE TTK Informatikai Tanszékcsoport, 4. javított kiadás, 1999 6. Recursive factorial | Recursive Algorithms | Khan Academy, link, 2015. október 30.link 7. Iványi A.: Informatikai algoritmusok I., ELTE Eötvös Kiadó, Budapest, 2004, ISBN 963 463 664 0 8. Pap Gné., Szlávi P., Zsakó L.: Módszeres programozás: Rekurzív típusok, Mikrológia 27., ELTE TTK Informatikai Tanszékcsoport, 3. javított kiadás, 1998 9. Pintér L.: Programozási tételek rekurzív megvalósítása, Mikrológia 10., ELTE TTK Informatikai Tanszékcsoport, 4. kiadás, 1995 Kovács Magda-díj pályázat 2015/16. 15
16
Hivatkozások 12. Kaczur S.: A rekurzió tanításához használható mintaprogramok Java nyelven, A Dunaújvárosi Főiskola Közleményei, Dunaújváros, XXXI., 2009, ISSN 1586-8567, p. 1-6 (magyar nyelvű szakcikk) 13. h.c., link, 2015. november 3.link 14. Gábor Dénes Főiskola mérnök-informatikus szak tanterve, link, 2015. november 19.link 15. Oracle HR séma, link, 2015. október 2.link 16. Kaczur S.: Programozási technológia, 1. kiadás, 2010, ISBN 978-963-06-8628-0 17. Java SE Development Kit 8 | Downloads, link, 2015. október 5.link 18. NetBeans IDE Download, link, 2015. október 5.link 19. GitHub – Where software is built, link, 2015. október 5.link 20. Enterprise Architect Trial – Sparx System, link,,2015. október 5.link 21. Defining Multithreading Terms, link, 2015. október 18.link 22. J. Ponge: Fork and Join: Java Can Excel at Painless Parallel Programming Too!, link, 2015. október 18.link 23. Elkészült szoftver forráskódja, link, 2016. június 15.link Kovács Magda-díj pályázat 2015/16. 16
17
Hatékony-e a rekurzió? FÉLEGYHÁZI TAMÁS GÁBOR felegyhazi.tamas@gmail.com 17 Kovács Magda-díj pályázat 2015/16.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.