Existe uma lacuna de conhecimento enorme que limita as pessoas de abstrair mentalmente e perceber passos matemáticos ou lógicos complexos envolvidos na execução de algoritmos, o que dificulta o entendimento correto dos mesmos.

É incrível quando conseguimos representar esses passos de maneira visual, pois dessa maneira fica fácil observar detalhes antes implícitos nas diversas linhas de código de um algoritmo.

Confira abaixo uma imagem que fornece uma intuição simples sobre o funcionamento e o comportamento assintótico de alguns algoritmos conhecidos para o problema de ordenação:

Sorting

Nesta imagem, podemos analisar os algoritmos de Inserção, Seleção, Bubble, Shell, Merge, Heap, Quick e Quick3 em funcionamento em diferentes instâncias de problemas.

Fonte:

I’m Programmer, Sorting Algorihms Visualized, Disponível em <http://www.improgrammer.net/sorting-algorithms-visualized/>