Simulador de Algoritmos de Ordenação - Inf

Propaganda
Simulador de Algoritmos
de Ordenação
Bruno Guedes e Matheus Proença
Proposta
Programa simulador de
algoritmos de ordenação.
situações
com
Análise e Visualização Gráfica dos Seguintes Atributos:
• Tempo de Execução
• Número de Comparações
• Número de Trocas
Algoritmos Analisados
Algoritmos de ordem O(n²)
• Bubble Sort
• Selection Sort
• Insertion Sort
Algoritmos Analisados
Algoritmos de ordem O(n lg n)
• Heap Sort
• Merge Sort
• Quick Sort
Algoritmos Analisados
Algoritmos de ordem O(n) – ordem linear
• Counting Sort
• Radix Sort
Modos de Exibição
Para cada algoritmo, temos três dados distintos:
• Número de chaves vs tempo;
• Número de chaves vs número de comparações;
• Número de chaves vs número de trocas;
Obs.: Para o cálculo do tempo, variações consideráveis ocorrem devido
a condições externas ao algoritmo. Portanto, o programa não
calcula o tempo diretamente, e sim uma grandeza proporcional ao
número de trocas + número de comparações.
Implementação
Linguagem Java.
Interface Gráfica java.awt e javax.swing, codificadas com
o auxílio do NetBeans.
Gráficos implementados com o auxílio da biblioteca
JFreeChart (www.jfree.org/jfreechart).
Primeira área de INF01124 aplicada.
Modos de Operação
1. Análise de Ordenação
Seleciona até quatro algoritmos, e exibe seus gráficos
para um certo número de chaves. Exibe também os
gráficos das curvas ideais n², n lg n e n.
Permite a escolha do eixo vertical do gráfico (tempo,
trocas ou comparações)
Permite a escolha da quantidade de chaves, e do valor
máximo das mesmas (inteiros!).
Modos de Operação
1. Análise de Ordenação
Resolução: Número de pontos a serem calculados.
Maior resolução acarreta em gráfico mais preciso e
em maior tempo de execução (pode ser grande
demais!).
Constante: Para os gráficos ideais. Compressão ou
expansão vertical do mesmo, para tornar possível a
verificação da aproximação de um algoritmo e de sua
complexidade.
Modos de Operação
1. Relatório
Análise mais detalhada (e massiva) sobre os
algoritmos. Saída em texto.
Aqui, o tempo é realmente o tempo (não é mais a
variável proporcional a troca+comparação).
Tempo total de execução, dependendo do algoritmo,
pode ser muito grande.
Material disponível em
www.inf.ufrgs.br/~bsguedes/simulador
Non Multa Sed Multum
Download