Вы находитесь на странице: 1из 3

Universidad Católica del Norte Asignatura: Estructura de Datos

Escuela de Ingeniería Profesor: Cristian Chiang


Sede Coquimbo Ayudante: Bastián Ruiz

Estructura de Datos – Taller 2


Semestre: 1/2018 Fecha: 26/Mayo/2018

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.

In this case, the company Algorithm Laboratories needs to


conduct a study on ways to store the information they use,
and the best way to access such data in a prudent time. To
do this, it asks for help from UCN students, who, with their
knowledge of data structures and algorithms, will determine
the best way to store and access information through an
application in C++.

Application Functional Requirements (60%)


FR1 (45%): For this work, you must implement manually four data storage structures (LinkedList, ArrayList, Search Binary
Tree and AVL Tree) with corresponding insertion and search methods. In addition, each structure must have
a method to delete all data. Finally, in the case of ArrayList, you must implement two methods to sort data,
Bubble Sort (BS) and Merge Sort (MS).

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.

1° Semestre – Año 2018 Página 1


Universidad Católica del Norte Asignatura: Estructura de Datos
Escuela de Ingeniería Profesor: Cristian Chiang
Sede Coquimbo Ayudante: Bastián Ruiz

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

SortReport.txt (BS = Bubble Sort; MS = Merge Sort)

SearchReport.txt (UO = Unordered; O = Ordered)

Additional Requirement (40%)


Each group must send a report with the results obtained. This must be composed as follows (80%):

• Cover with the information of the members.


• Table of contents.
• Introduction and system information.
• Results obtained (Tables).
• Algorithm comparison graphics.
• Conclusions of results.

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:

• Run the application on both Windows and Linux operating systems.


• Include both results obtained in the report (tables, graphs and conclusions).
• Upload both source codes used in different folders (windows_source_code and linux_source_code).
• Add operating system name to the report files (F.E. InsertReportWindows.txt and InsertReportLinux.txt).

1° Semestre – Año 2018 Página 2


Universidad Católica del Norte Asignatura: Estructura de Datos
Escuela de Ingeniería Profesor: Cristian Chiang
Sede Coquimbo Ayudante: Bastián Ruiz

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

• You must form groups of 3 members.


• Applications must be developed in C++ language through MinGW compiler. You can use the following IDEs: Dev-Cpp,
NetBeans or Eclipse.
• Every code submission must not present compilation errors. If the application does not compile, the submission is
qualified with minimum mark (1.0).
• Final submission must comply with the Obligatory Requirements (OR). Otherwise, the submission is qualified with
minimum mark (1.0).
• Submissions must be uploaded to Educ@ platform in a compressed file (.rar or .zip) with the following name:
Taller2-X_lastName1_lastName2_lastName3_IDE.rar, where X represents the submission number (1, 2 or 3).
• Submissions must be uploaded on the indicated date or before. Submissions will not be accepted after the deadline.
In this case, the submissions are qualified with minimum mark (1.0).
• in case of doubts with the statement or the requirements, make the consultations in the forum "Taller 2" of Educ@.

1° Semestre – Año 2018 Página 3

Вам также может понравиться