Академический Документы
Профессиональный Документы
Культура Документы
General Objetives
• Develop an application in C++ language using Data Structures and algorithms to resolve a problem.
• Apply knowledge of complex tree-like structures.
• Analyze and compare performance of insertion, order and search algorithms.
Statement
As of today, thanks to the growth of the Internet, it is easier
to access information. Most people have a profile in a social
network, companies sell their products through virtual
stores and one can know what happens in any part of the
world instantly. Therefore, the volume of existing
information is such that every day it becomes more difficult
to analyze them in the shortest possible time.
FR2 (15%): The application must read five files, which have 100, 500, 1.000, 10.000 and 100.000 unordered numbers
respectively. Additionally, you must count the time it takes to insert data in each structure, and with this,
calculate the average time that the insertion of data has in each.
FR3 (15%): In the case of ArrayList, you must make two copies of these with the included data. Then, you must apply to
each ArrayList one of the two ordering methods. In addition, you should measure the time it takes for each
structure to be ordered.
FR4 (15%): After the data is loaded into the structures, you must perform random searches of at least 50% of the data.
That is, for the 100 data, 50 searches must be performed, for the 500, 250 searches, and so on. This action
must be performed for all structures, including one of the ArrayList ordered. Similarly, you should count the
time it takes each search, and get an average search time.
FR5 (10%): Finally, you need to generate a report of each operation in three different files. That is, insert operation
generates an InsertReport.txt file, sort operation generates a SortReport.txt and search operation generates
a SearchReport.txt. Each file must have the next structure:
InsertReport.txt
The report can be written in Spanish, with Arial font size 12 and line spacing 1,5 (20%).
Extra Point
The final delivery can be benefited with an extra point. To access this benefit, you must do the following:
Obligatory Requirements
OR1: Each Functional Requirement (except the first) must be encapsulated in a function or method. The idea is to
simplify as much as possible the main method.
OR2: You must implement the data structures (ArrayList, LinkedList, ABB and AVL) without using the STL library.
OR3: Any calculated time in the application must be measured in milliseconds, and only the algorithm's execution
time should be considered. For Windows, you can use the Windows Library <windows.h>, and for Linux, the
time library <time.h>
OR4: Generated files must be placed on a new folder called “reportFiles” placed on the root folder of application.
Submission Dates
• 06/June/2018 (30%): Class diagram and implementation of each data structure (source code).
• 16/June/2018 (70%): Final submission of the application (source code) and the report.
Submission Conditions