Análise de complexidade de algoritmos utilizando métodos empíricos/experimentais
| dc.contributor.advisor | Lopes, Kennedy Reurison | |
| dc.contributor.advisormail | kennedy.lopes@ufersa.edu.br | |
| dc.contributor.author | Vidal, Marcos Mikael Lima | |
| dc.contributor.referee1 | Lopes, Kennedy Reurison | |
| dc.contributor.referee2 | Vieira, George Felipe Fernandes | |
| dc.contributor.referee3 | Sarmento, Lucas Abrantes | |
| dc.coverage.spatial | Pau dos Ferros | |
| dc.date.accessioned | 2026-01-17T13:08:41Z | |
| dc.date.available | 2026-01-17T13:08:41Z | |
| dc.date.issued | 2025-12-15 | |
| dc.description.abstract | A análise de complexidade de algoritmos é fundamental para o desenvolvimento de sistemas de alta performance, permitindo prever o consumo de recursos computacionais. No entanto, a análise assintótica teórica nem sempre reflete o desempenho prático devido a fatores como constantes ocultas, arquitetura de hardware e otimizações de compiladores. Este trabalho propõe uma metodologia automatizada para a análise empírica da complexidade temporal de algoritmos de ordenação, tratando-os como caixas-pretas. O sistema desenvolvido avalia oito algoritmos clássicos (Bubble, Insertion, Merge, Quick, Heap, Counting, Radix e Bucket Sort) em cenários com dados aleatórios, ordenados e reversos. A metodologia reside na aplicação do otimizador Adam (Gradiente Descendente Adaptativo) para ajustar modelos matemáticos (O(n), O(n2) e O(n log n)) aos tempos de execução coletados, utilizando o Erro Quadrático Médio (RMSE) como critério de seleção. Os resultados experimentais confirmaram a hierarquia teórica esperada, validaram casos especiais como o desempenho linear do Insertion Sort em vetores ordenados e evidenciaram a alta instabilidade do Bubble Sort. O estudo conclui que a técnica de ajuste iterativo de curvas é eficaz para classificar algoritmos empiricamente, oferecendo uma ferramenta prática para tomada de decisão em engenharia de software. | |
| dc.description.abstract2 | Algorithm complexity analysis is fundamental for developing high-performance systems, enabling the prediction of computational resource consumption. However, theoretical asymptotic analysis does not always reflect practical performance due to factors such as hidden constants, hardware architecture, and compiler optimizations. This work proposes an automated methodology for the empirical analysis of the time complexity of sorting algorithms, treating them as black boxes. The developed system evaluates eight classic algorithms (Bubble, Insertion, Merge, Quick, Heap, Counting, Radix, and Bucket Sort) across random, sorted, and reverse data scenarios. The methodological innovation lies in applying the Adam optimizer (Adaptive Gradient Descent) to fit mathematical models (O(n), O(n2), and O(n log n)) to observed execution times, using the Root Mean Square Error (RMSE) as the selection criterion. Experimental results confirmed the expected theoretical hierarchy, validated special cases such as the linear performance of Insertion Sort on sorted vectors, and highlighted the high instability of Bubble Sort. The study concludes that the iterative curvefitting technique is effective for empirically classifying algorithms, providing a practical tool for decision-making in software engineering. | |
| dc.description.physical | 54 f. | |
| dc.format.mimetype | ||
| dc.identifier.bibliographicCitation | VIDAL, Marcos Mikael. Análise de complexidade de algoritmos utilizando métodos empíricos/experimentais. 2025. 54 f. Monografia (Bacharelado Interdisciplinar em Tecnologia da Informação) - Centro Multidisciplinar de Pau dos Ferros, Universidade Federal Rural do Semi-Árido, Pau dos Ferros, 2025. | |
| dc.identifier.uri | https://repositorio.ufersa.edu.br/handle/prefix/14895 | |
| dc.language.iso | pt_BR | |
| dc.publisher.center | Centro Multidisciplinar de Pau dos Ferros - CMPF | |
| dc.publisher.country | Brasil | |
| dc.publisher.department | Departamento de Engenharias e Tecnologia - DETEC | |
| dc.publisher.initials | UFERSA | |
| dc.publisher.institution | Universidade Federal Rural do Semi-Árido | |
| dc.rights | info:eu-repo/semantics/openAccess | |
| dc.rights.holder | UFERSA | |
| dc.rights.license | Attribution-ShareAlike 3.0 Brazil | en |
| dc.rights.uri | http://creativecommons.org/licenses/by-sa/3.0/br/ | |
| dc.subject.cnpq | CIENCIAS EXATAS E DA TERRA::TECNOLOGIA DA INFORMACAO | |
| dc.subject.keyword | Análise de algoritmos | |
| dc.subject.keyword | Algoritmos de ordenação | |
| dc.subject.keyword | Gradiente descendente | |
| dc.subject.keyword | Aprendizado de máquina | |
| dc.subject.keyword | Algorithm analysis | |
| dc.subject.keyword | Sorting algorithms | |
| dc.subject.keyword | Gradient descent | |
| dc.subject.keyword | Machine learning | |
| dc.title | Análise de complexidade de algoritmos utilizando métodos empíricos/experimentais | |
| dc.title.alternative | Algorithm complexity analysis using empirical/experimental methods | |
| dc.type | info:eu-repo/semantics/bachelorThesis |
