Escolar Documentos
Profissional Documentos
Cultura Documentos
Utilizamos dois computadores diferentes para processar. Nota-se que foram utilizados os
mesmos códigos e os mesmos bancos de teste, a única diferença são as especificações das
máquinas.
Máquina 1
i3 de 11°
20GB de RAM
216GB de SSG
Máquina 2
AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz
8GB de RAM
512 SSD
Quick Sort
Complexidade de Tempo:
Melhor caso: O(n log n)
Caso médio: O(n log n)
Pior caso: O(n²)
Complexidade de Espaço:
Geralmente O(log n) devido ao uso da pilha de chamadas de recursão.
Características:
Baseado na divisão e conquista.
Escolhe um 'pivô' e participa do array em torno dele.
Não estável (a ordem de elementos iguais pode ser alterada).
Muito eficiente para grandes conjuntos de dados.
A escolha do pivô pode afetar drasticamente o desempenho.
Merge Sort
Complexidade de Tempo:
Melhor caso: O(n log n)
Caso médio: O(n log n)
Pior caso: O(n log n)
Complexidade de Espaço:
O(n), pois requer espaço adicional para a matriz temporária.
Características:
Também baseado na divisão e conquista.
Divide o array em duas metades, ordena-as e depois as funde.
Estável (mantém a ordem de elementos iguais).
Sempre tem o mesmo desempenho, independentemente da ordenação inicial dos dados.
Usa mais memória que o Quick Sort.
Shell Sort
Complexidade de Tempo:
Melhor caso: varia dependendo da sequência de lacunas, mas pode ser tão baixo quanto O(n
log n).
Caso médio: depende da sequência de lacunas; geralmente pior que O(n log n) mas melhor
que O(n²).
Pior caso: O(n²) (dependendo da sequência de lacunas).
Complexidade de Espaço:
O(1), é um algoritmo de ordenação no local.
Características:
Melhoria do Insertion Sort.
Usa um conceito de 'lacunas' para comparar elementos distantes, em seguida, reduz
gradualmente a lacuna e refina a ordenação.
Não estável.
Menos eficiente que o Quick Sort e o Merge Sort para conjuntos de dados muito grandes.
Mais fácil de implementar do que os outros dois e requer menos memória.
De forma geral
Eficiência: Merge Sort e Quick Sort são geralmente mais eficientes que o Shell Sort,
especialmente para conjuntos de dados grandes.
Uso de Memória: Shell Sort e Quick Sort são mais eficientes em termos de memória do que o
Merge Sort.