JavaRush /Blogue Java /Random-PT /Resenha do livro: “Estruturas e Algoritmos de Dados Java”...

Resenha do livro: “Estruturas e Algoritmos de Dados Java”, Robert Laforet

Publicado no grupo Random-PT
A força de todo programador está em seu conhecimento. Sim, a capacidade de pesquisar bem no Google também não está em último lugar, mas, mesmo assim, deve haver um certo conhecimento, a partir do qual se forma a forma de pensar do desenvolvedor. Quanto mais profundo for esse conhecimento, mais soluções interessantes um programador poderá apresentar. Resenha do livro: “Estruturas e Algoritmos de Dados Java”, Robert Laforet - 1Uma das partes dessa “base” são estruturas de dados e algoritmos. Como você pode expandir seu conhecimento nessa direção? Como opção, encontre um livro cujo conhecimento se tornará uma reserva à prova de fogo e base para estudos posteriores. Para mim, esse livro foi “Java Data Structures and Algorithms”, de Robert Laforet .Resenha do livro: “Estruturas e Algoritmos de Dados Java”, Robert Laforet - 2

Para quem

O público deste livro pode ser uma gama muito ampla de pessoas, porque será útil tanto para aqueles que acabaram de dominar a sintaxe da linguagem Java , quanto para programadores praticantes, para uma compreensão mais profunda dos recursos das estruturas de dados e algoritmos .

Sobre o que

Este livro é dedicado ao estudo e uso de estruturas de dados e algoritmos em programação. Ele ensinará ao leitor como as estruturas de dados determinam a maneira como os dados são organizados na memória e como os algoritmos realizam diversas operações nessas estruturas. Vamos cavar um pouco mais fundo e ver exatamente do que trata este livro:
  1. Matrizes. As operações de inserção, pesquisa e exclusão em matrizes e matrizes ordenadas são abordadas em detalhes. Demonstra a operação de pesquisa linear e binária para matrizes ordenadas e não ordenadas. Você também aprenderá o que é sintaxe O.
  2. Ordenação. Três métodos simples de classificação são considerados: “classificação por bolha”, “classificação por seleção”, “classificação por inserção”. No livro você aprenderá qual é o mais lento e qual é o mais simples.
  3. Pilhas e filas. São consideradas estruturas de dados como pilha, fila e fila de prioridade, sua eficácia e implementação em Java.
  4. Listas vinculadas. O livro fala sobre listas duplamente vinculadas e bidirecionais, sua eficiência e como as operações de inserção, pesquisa e exclusão são executadas. Iteradores e quais métodos eles exigem também são abordados.
  5. Recursões. As recursões são consideradas em diversas situações, tais como: cálculo de números triangulares e fatoriais, construção de anagramas, realização de busca binária recursiva, resolução do quebra-cabeça da Torre de Hanói, implementação de merge sort, resolução do problema da mochila.
  6. Classificações não triviais. Métodos mais avançados são considerados: Shell sort, quick sort e radix sort, seus algoritmos, eficiência.
  7. Árvores binárias. São consideradas árvores de busca binária balanceadas, como funcionam, suas operações de inserção e exclusão, diversos tipos de travessia, busca de mínimo e máximo, busca de sucessor. O Código Huffman também será abordado.
  8. Árvores vermelhas e pretas. Consideramos uma das variedades mais eficazes de árvores balanceadas, suas operações de rotação e troca de cores necessárias para o balanceamento.
  9. Árvores 2-3-4. Árvores deste tipo são descritas como um exemplo de árvores multicaminho; sua operação e relacionamento com árvores B, que são usadas para armazenamento externo de dados, são discutidos.
  10. Tabelas hash. Hashing e seus vários métodos são abordados, como sondagem linear e quadrática, hashing duplo e método de encadeamento. Você também pode aprender como o hash pode ser usado para organizar o armazenamento externo de arquivos.
  11. Pirâmides. Este é um tipo especial de árvore usado para implementar filas de prioridade com eficiência. O livro discute os mecanismos de operação de inserção, exclusão e rearranjo. Você também aprenderá o que é permutação piramidal e como ela pode ser implementada em Java.
  12. Gráficos. São apresentados gráficos ponderados e não ponderados, algoritmos para pesquisá-los e algoritmos usados ​​para encontrar os caminhos mais curtos de travessia.
Para maior clareza, cada capítulo fornece a sua própria implementação da estrutura de dados em questão. Por exemplo, se esta for uma lista vinculada individualmente, será fornecido um exemplo de classe que implementa a funcionalidade descrita. O último capítulo do livro, com base no conhecimento adquirido nos capítulos anteriores, começa a reunir todo o conhecimento em uma única imagem. Por exemplo, você será capaz de ter uma ideia clara de qual estrutura de dados usar em qual situação: Resenha do livro: “Estruturas e Algoritmos de Dados Java”, Robert Laforet - 3Há também pequenos exercícios no final de cada capítulo. Alguns deles envolvem fazer coisas com o aplicativo Workshop , enquanto outros fornecem pequenas tarefas diretamente no código.

O que são aplicativos de oficina

Aplicações de workshop são usadas para demonstrar essas estruturas e algoritmos . Os aplicativos são projetados como miniaplicativos Java que podem ser executados em um navegador. Os aplicativos de workshop criam diagramas gráficos que mostram como funciona um algoritmo ou estrutura de dados. Por exemplo, em um aplicativo projetado para exibir colunas ordenadas em ordem crescente, cada vez que você clicar em um botão no histograma, a próxima etapa será executada. Neste caso, serão exibidos os valores das variáveis ​​envolvidas neste algoritmo para que você possa ver como o código é executado (lembra a descrição de um depurador , certo?).

Como baixar e instalar o Workshop

  1. Você pode baixar miniaplicativos aqui . Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 4
  2. Clique em WorkshopApplets.ZIP e baixe o arquivo com miniaplicativos.
  3. Para entender os miniaplicativos, você pode ler este tópico e os comentários sobre ele.

Prós do livro

  • muito fácil de ler, muitos exemplos são explicados quase “nos dedos”;
  • abre os olhos para muitas coisas “clássicas”, sem o uso de fórmulas matemáticas complexas. Bem, quase sem eles :)
  • Embora os exemplos estejam em Java, as ações que ocorrem no código são explicadas detalhadamente pelo texto a seguir e pelos comentários no código. Portanto, pode ser lido por um usuário de qualquer linguagem de programação, já que os exemplos de código são bastante simples: são lidos quase como um pseudocódigo.

Contras do livro

  • Apesar da explicação “nos dedos”, existem lacunas nela. Para explicar a classificação de arrays, o autor desenha um time de futebol, mas a classificação Shell praticamente não está descrita ali: não consegui entender e li sobre isso na Internet;
  • Podem ocorrer erros de digitação, geralmente em imagens ou tabelas;
  • algum código está bastante desatualizado.

Análogos

Recomendo análogos deste livro ou dos seguintes (para quem deseja continuar estudando):
  • “Algoritmos em Java” por Robert Sedgwick;
  • “Algoritmos: Construção e Análise” por Thomas Cormen.

Resultado final

O livro tem poucos contras, então vale muito a pena ler. Ele explica claramente muitos tópicos básicos e fundamentais, como vários tipos, matrizes, árvores, coleções, gráficos e assim por diante. Como o livro não está fortemente vinculado a Java , a base de conhecimento adquirida ao estudá-lo será útil em outras linguagens de programação. Deve ter, deve ler - se você for um desenvolvedor.Рецензия на книгу: «Структуры данных и алгоритмы Java», Роберт Лафоре - 6
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION