Praktická výkonnost různých implementací prioritní fronty
Practical performance of different implementations of the priority queue
Typ dokumentu
bakalářská prácebachelor thesis
Autor
Radoslav Hašek
Vedoucí práce
Šimeček Ivan
Oponent práce
Kašpar Jiří
Studijní obor
Teoretická informatikaStudijní program
Informatika 2009Instituce přidělující hodnost
katedra teoretické informatikyPráva
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Zobrazit celý záznamAbstrakt
Teoretická část této práce popisuje abstraktní datovou strukturu prioritní fronta, její podporované operace a řadu možných implementací, které jsou podrobně rozebrány po teoretické stránce. Dále jsou uvedeny příklady užití prioritní fronty. Práce rovněž nastiňuje několik možností paralelního přístupu k této struktuře. V rámci praktické části byla většina z možných realizací prioritní fronty implementována v jazyce C++ a na školním serveru STAR byla změřena jejich praktická výkonnost v několika scénářích. Práce uvádí výsledky těchto měření a analyzuje je. V okomentovaných grafech jsou jednotlivé implementace přímo porovnány. Na základě těchto výsledků je možné vybrat vhodnou variantu prioritní fronty pro konkrétní použití a zejména pro velká vstupní data tak ušetřit výpočetní čas. Z měření vyplynulo že implementačně jednodušší nebo asymptoticky pomalejší datové struktury mohou být v praxi výkonnější. The theoretical part of this thesis describes an abstract data structure called priority queue, it's supported operations and a number of possible implementations which are described in detail from the theoretical point of view. After that, examples of priority queue applications are listed. This thesis also mentions several possible approaches to parallelization of this structure. In the practical part, most of the described priority queue realizations have been implemented in C++. Their practical performance has been measured on the STAR school cluster in several test cases. This thesis shows results of these measurements and analyses them. The implementations are compared on several commented graphs. These results help to choose a suitable priority queue variant for a specific purpose in order to save computing time, especially for large input data. The measurements have shown that simpler or asymptotically slower data structures can be faster in practice.
Kolekce
- Bakalářské práce - 18101 [348]