Duas ferramentas para aprender estruturas e algoritmos de dados | Recomendação de consciência

A importância das estruturas e algoritmos de dados deve ter sido ouvida em rios e lagos. Seu impacto mais direto sobre nós é a entrevista.De um modo geral, os programadores estarão envolvidos na estrutura de dados e no conhecimento de algoritmos.Em especial na situação atual em que é difícil encontrar um emprego, as empresas prestarão mais atenção à capacidade básica dos candidatos. O outro impacto é o trabalho: tomando-me como exemplo, quando comecei a fazer big data em uma pequena empresa, devido à grande quantidade de dados e aos recursos insuficientes de computação, precisei experimentar vários métodos para otimizar o desempenho do software. O problema mais difícil de resolver é a eficiência da pesquisa espacial, na época foram utilizadas a estrutura de dados da árvore kd e o algoritmo de caminho mais curto (SPFA). Obviamente, na maioria dos casos, basta chamar o pacote existente como esse algoritmo comum, mas às vezes é necessário fazer algumas melhorias em conjunto com o negócio.Neste momento, é particularmente importante ter uma habilidade básica sólida.

Recentemente, prestei atenção em duas ferramentas para aprender estruturas e algoritmos de dados, particularmente fáceis de usar. Abaixo, apresentarei essas duas ferramentas separadamente, você pode coletá-las, talvez você possa usá-las mais tarde.

A primeira ferramenta é a ferramenta de visualização da estrutura de dados e algoritmos - Visualização da Estrutura de Dados . A ferramenta foi desenvolvida pela Universidade de São Francisco em:

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html复制代码

Seu papel é visualizar a estrutura de dados e algoritmos para facilitar nosso entendimento dos princípios. Existem muitas ferramentas semelhantes: depois de comparar quatro ou cinco, acho que é o melhor. Rico em conteúdo, fácil de operar, rápido de acessar e fácil de entender. Embora o site seja em inglês, não há muito inglês e todos são termos fáceis de entender. (

Você pode prestar atenção à palavra-chave ds de resposta ao código de cruzamento de número público para obter links para outras ferramentas)
. Abaixo, darei uma experiência simples de como usar a ferramenta. Primeiro, vamos ver quanto a ferramenta contém

Isso é apenas uma parte.Você pode ver que ele contém várias árvores (árvore de pesquisa binária, árvore vermelho-preta, árvore B), vários tipos (classificação de mesclagem, classificação rápida, classificação de heap) e vários algoritmos de gráfico (caminho mais curto , Algoritmo mínimo de spanning tree). Abrange basicamente as estruturas de dados e algoritmos que costumamos usar.

Vamos dar uma olhada em como a ferramenta opera

O lado esquerdo da imagem acima é uma árvore vermelha e preta que eu construí com a ferramenta, e o lado direito é uma árvore B +. Pode-se observar que não há muitas informações redundantes na página, mas apenas os botões e opções relacionados à inserção, exclusão e impressão estão incluídos, e o custo de aprendizado é particularmente baixo. Haverá animações correspondentes ao inserir e excluir, para nos ajudar a entender o princípio da própria estrutura de dados.Um pequeno vídeo é gravado abaixo para você experimentar. (O vídeo postado diretamente aqui realmente não está claro, um link é colocado, você pode encontrá-lo no link)

Red Black Tree (link para o primeiro vídeo): mp.weixin.qq.com/s?__biz=MjM…

Árvore B + (link para o segundo vídeo): mp.weixin.qq.com/s?__biz=MjM…

De fato, daqui também podemos ver algumas diferenças entre a árvore vermelho-preta e a árvore B +. A árvore B + na figura acima tem mais elementos que a árvore vermelho-preta, mas a altura da árvore é menor que a árvore vermelha-preta. Esse recurso determina que, no cenário do banco de dados, é impossível usar árvores vermelhas e pretas para indexação, o que fará com que a altura da árvore seja muito alta. Esse modo de visualização é muito reconfortante.

A ferramenta de visualização é apresentada acima e, em seguida, é introduzida uma biblioteca de códigos de estruturas de dados e algoritmos, endereço:

https://github.com/TheAlgorithms/Pythonhttps://github.com/TheAlgorithms/Javascripthttps://github.com/TheAlgorithms/Javahttps://github.com/TheAlgorithms/C复制代码

Disponível em vários idiomas. Vamos dar uma olhada no que ele contém

Aqui está apenas parte do conteúdo.Como as ferramentas de visualização, estruturas de dados e algoritmos comuns são basicamente incluídos.

Finalmente, um pequeno exemplo de pesquisa binária é usado para combinar essas duas ferramentas. O algoritmo de busca binária é muito simples e é a pergunta mais frequente na minha entrevista de emprego. Embora seja simples, não subestime.Quando eu era um entrevistador, ainda encontrei muitas pessoas que não podiam escrever. Endereço do código da biblioteca do algoritmo da versão Python:

https://github.com/TheAlgorithms/Python/blob/master/searches/binary_search.py复制代码

Eu também o implementei, o código é o seguinte:

O processo de pesquisa binária é o seguinte (link para o terceiro vídeo):

mp.weixin.qq.com/s?__biz=MjM…

Isso inclui o processo de pesquisa e o código de execução correspondente para cada etapa da pesquisa, o que é muito conveniente para o aprendizado.

Existem ferramentas e código de visualização, combinados com o princípio de que acredito que não existem estruturas de dados e algoritmos que não podem ser aprendidos. Espero que essas duas ferramentas sejam úteis para você. Responda a palavra-chave ds para obter mais ferramentas.

Bem-vindo ao número público "dudu" para produzir produtos secos que não podem ser vistos em outros lugares. .


Acho que você gosta

Origin juejin.im/post/5e9317ae6fb9a03c526849d0
Recomendado
Clasificación