Para quem está ingressando na área de computação, um dos conceitos mais abstratos, confusos e difíceis de se aprender são os algoritmos clássicos de ordenação. Estes algoritmos nada mais são do que uma sequência finita de comandos em uma determinada ordem, que têm como objetivo ordenar uma quantidade de elementos dentro de uma regra de ordenação. As ordens mais usadas são a numérica e a lexicográfica.
Existem várias razões para querermos ordenar uma sequência. Uma delas é a possibilidade de acessar seus dados de modo mais eficiente. Imagine você dentro de uma biblioteca procurando por um título em específico. Se as obras não estiverem organizadas de alguma forma – seja por ordem alfabética de título, nome de autor, gênero, ISBN, etc – a chance de você passar uma eternidade procurando até encontrar o livro desejado é muito grande.
Como a ordenação pode ser um trabalho extremamente pesado para a máquina realizar – e aqui entenda “trabalho pesado” como trabalho que exige grande esforço computacional – através dos anos surgiram uma série de algoritmos que têm como objetivo ordenar dados da forma mais rápida, concisa e eficiente possível.
Alguns destes algoritmos clássicos, são:
- Insertion sort
- Selection sort
- Bubble sort
Além disso, há outros bastante sofisticados, como:
- Merge sort
- Heapsort
- Counting sort
- Bucket sort
- Cocktail sort
- Timsort
- Quick sort
Como estes algoritmos são bastante abstratos, pode ser difícil compreender o seu funcionamento. Por exemplo, considere o pseudocódigo a seguir de uma implementação do algoritmo Quick Sort.
Talvez você não tenha muita dificuldade para entender este conteúdo (seja por já estar acostumado, ou por conhecer como o algoritmo funciona), mas para quem está tendo os primeiros contatos com algoritmos, isso pode ser bem confuso (e assustador!).
Por esse motivo surgiram alternativas para tentar ensinar o seu funcionamento de outra forma. Um bom exemplo são imagens (afinal, uma imagem diz mais do que mil palavras, não é mesmo?). Repare na representação do mesmo algoritmo neste gif:
Algumas coisas sobre o seu funcionamento já começam a ficar mais claras, não é mesmo? Mas apesar disso, ainda pode ser confuso de mais. É por essa razão que um grupo de dança Húngaro teve uma ideia maluca: “e se apresentássemos como os algoritmos funcionam através da dança?”.
Foi desta ideia bem diferente que surgiu a série de vídeos sobre o assunto. Veja só um deles abaixo:
Bem interessante, não é mesmo? Além do Bubble Sort, há vídeos do Quick Sort, Merge Sort, Shell Sort, Select Sort, Insert Sort e muito mais.
O que achou da ideia? Eu achei divertidíssima! Comente aí embaixo!