Sorting Algorithms Time Analysis in Python

Language / Idioma


Português

Este projeto consiste em uma análise comparativa dos tempos de execução de três algoritmos de ordenação populares em Python: Bubble Sort, Insertion Sort e Merge Sort.

Algoritmos Implementados

  • Bubble Sort: Algoritmo simples que percorre repetidamente a lista, comparando elementos adjacentes e os trocando se estiverem na ordem errada.
  • Insertion Sort: Algoritmo que constrói uma lista ordenada um elemento por vez, movendo elementos não ordenados para a posição correta na lista ordenada.
  • Merge Sort: Algoritmo que divide a lista em sublistas menores, ordena essas sublistas e mescla-as para produzir uma lista ordenada.

Resultados

Os tempos de execução de cada algoritmo para diferentes tamanhos de entrada são registrados e armazenados em um dicionário. Em seguida, são calculadas as médias dos tempos de execução para cada tipo de algoritmo.

Contribuições

Contribuições são bem-vindas! Se você tiver sugestões de melhorias, correções de bugs ou implementações adicionais, sinta-se à vontade para abrir uma issue ou enviar um pull request.


English

This project consists of a comparative analysis of the execution times of three popular sorting algorithms in Python: Bubble Sort, Insertion Sort, and Merge Sort.

Implemented Algorithms

  • Bubble Sort: A simple algorithm that repeatedly traverses the list, comparing adjacent elements and swapping them if they are in the wrong order.
  • Insertion Sort: An algorithm that builds a sorted list one element at a time, moving unsorted elements to the correct position in the sorted list.
  • Merge Sort: An algorithm that divides the list into smaller sublists, sorts these sublists, and merges them to produce a sorted list.

Results

The execution times of each algorithm for different input sizes are recorded and stored in a dictionary. Then, the average execution times for each type of algorithm are calculated.

Contributions

Contributions are welcome! If you have suggestions for improvements, bug fixes, or additional implementations, feel free to open an issue or submit a pull request.