Voltar aos projetos

Sobre o Projeto

Aplicação visual e interativa que permite estudar o comportamento de diferentes algoritmos de ordenação através de animações em tempo real. Oferece controles para ajustar o tamanho do array, velocidade de execução e feedback sonoro, possibilitando análise comparativa entre algoritmos como Bubble Sort, Quick Sort, Merge Sort, Heap Sort, Selection Sort e Insertion Sort.

Funcionalidades

  • Visualização de Algoritmos de Ordenação

    Exibição em tempo real do processo de ordenação de seis algoritmos diferentes, com barras coloridas que representam os valores do array e mudam dinamicamente durante a execução.

  • Controles de Configuração do Array

    Ajuste do tamanho do array, controle de velocidade de execução dos algoritmos e botão para randomizar os valores, permitindo testar diferentes cenários e comportamentos.

  • Feedback Sonoro Sincronizado

    Sistema de áudio que emite sons durante o processo de ordenação, com frequências variadas baseadas na altura das barras, proporcionando experiência audiovisual completa da execução dos algoritmos.

  • Interface com Tema Alternável

    Alternância entre temas claro e escuro para melhor conforto visual durante o uso prolongado da aplicação.

Desafios

  • Sincronização Visual e Sonora dos Algoritmos

    Coordenar a execução dos algoritmos com as atualizações visuais das barras e o feedback sonoro em tempo real, garantindo que as cores das barras refletissem corretamente suas alturas e que os sons correspondessem às trocas de elementos.

  • Controle Dinâmico de Velocidade

    Implementar um sistema que permite ajustar a velocidade de execução dos algoritmos durante a visualização, controlando delays e mantendo a fluidez das animações sem comprometer a sincronia audiovisual.

  • Responsividade e Adaptação de Tamanho

    Adaptar o tamanho máximo dos arrays baseado nas dimensões da tela do usuário, garantindo que a visualização funcionasse bem tanto em dispositivos móveis quanto em monitores grandes, limitando valores para manter performance.

  • Adaptação dos Algoritmos Para Visualização

    Modificar a implementação tradicional dos algoritmos de ordenação para incluir pontos de pausa e atualização da interface, permitindo que cada passo do processo fosse visível e acompanhado de feedback sonoro correspondente.

Aprendizados

  • Implementação de Algoritmos de Ordenação

    Compreensão do funcionamento interno de seis algoritmos de ordenação diferentes, incluindo suas complexidades, casos de uso e comportamentos em diferentes cenários de entrada.

  • Web Audio API Para Feedback Sonoro

    Uso da Web Audio API para criar um sistema de feedback sonoro dinâmico, gerando frequências variadas sincronizadas com as operações dos algoritmos e proporcionando uma melhor experiência audiovisual.

  • Gerenciamento de Estado no React

    Utilização de Context API, hooks e gerenciamento de estado complexo para controlar múltiplos aspectos da aplicação simultaneamente, incluindo configurações, estado dos algoritmos e sincronização de componentes.