Desenvolvimento

23 nov, 2018

Algoritmos e estrutura de dados clássicos em JavaScript

Publicidade

É muito difícil conter a empolgação quando estamos falando de JavaScript. São tantas possibilidades na própria linguagem para se resolver um mesmo problema: uma infinidade de frameworks e bibliotecas geniais, e uma vasta opções de plataformas que hoje se adequaram para conversar com o JavaScript.

Não há dúvidas de que tudo isso é muito bom, afinal, conseguimos utilizar um mesmo conhecimento para resolver mil e um problemas distintos. Entretanto, existe também um grande problema que muita gente acaba se envolvendo: aprender a base do JavaScript de forma parcial e ir diretamente para as bibliotecas e frameworks.

E é exatamente para tentar amenizar essa situação (que acaba se tornando bastante problemática quando o programador começa a subir de nível nas empresas), que o engenheiro de software Oleksii Trekhleb desenvolveu o repositório javascript-algorithms. Vamos dar uma olhada nele.

Algoritmos em JavaScript

Em termos bem simples, este repositório é uma vasta coleção de algoritmos e estruturas de dados implementadas em JavaScript. Além do código propriamente dito, cada uma das implementações acompanha explicações e links para leituras adicionais, o que torna o aprendizado muito mais completo.

O repositório, criado já há algum tempo, possui mais de quarenta mil estrelas e está dividido de forma muito simples em algumas categorias:

  • Estrutura de dados
  • Algoritmos

Algoritmos por tópico

  • Matemática
  • Sets
  • String
  • Busca
  • Ordenação
  • Listas Ligadas
  • Árvores
  • Grafos
  • Outros

Algoritmos por paradigma

  • Força Bruta
  • Dividir para conquistar
  • Programação dinâmica
  • Outros

Muito bem organizado, não é mesmo? Para cada um dos tópicos há uma lista de algoritmos classificados em B (basic) ou A (advanced). Essas duas letras indicam o nível de complexidade deles.

Implementações de Estruturas de Dados

Para cada algoritmo há um link para uma página específica. Nesta página encontramos as explicações em um arquivo README.md, os testes correspondentes no diretório _tests_ e as implementações propriamente ditas em JavaScript na raiz.

Página de um dos algoritmos/estrutura de dados demonstrado

Além de tudo isso, ao final, há o cálculo do esforço computacional da máquina para resolver um problema proposto pelo estudante. Essa métrica é feita usando a notação de Big O.

Explicação da notação BIg O

Isso tudo ajuda não somente a entender o código feito, mas principalmente todo o conceito por trás daquela estratégia de implementação.

Conclusão

Seja você iniciante ou usuário avançado do JavaScript, é fundamental entender como funcionam as estruturas de dados básicas e como implementar (e quando usar) algoritmos clássicos de ordenação, busca, calcular menor caminho, e por aí em diante. No final das contas, este conhecimento pode ser a ponte direta para o seu grande próximo emprego.

PS: caso tenha se desanimado pelo fato do repositório estar em inglês, não desanime! Há uma versão em pt-br disponível neste link.

Referências