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