Algoritmos e Estruturas de Dados em C# (.NET)
Algoritmos e Estruturas de Dados em C# (.NET)
Resumo:
O livro «Algoritmos e Estruturas de Dados em C# (.NET)» é um guia prático completo que ajudará desenvolvedores de qualquer nível a dominar conceitos fundamentais e avançados de construção de código eficiente. Ao contrário de livros didáticos abstratos, o material é focado em problemas reais que os desenvolvedores C# enfrentam no dia a dia: desde o processamento de coleções até a otimização de desempenho de aplicações servidoras na plataforma .NET.
Sobre o que é este livro
O livro abrange um espectro completo de tópicos necessários para dominar o pensamento algorítmico com confiança:
- Fundamentos da análise de complexidade: Big O, notação Ômega e Theta; como avaliar o desempenho de algoritmos antes de escrever o código.
- Estruturas de dados clássicas: arrays, listas, pilhas, filas, tabelas hash, árvores (BST, AVL, rubro-negras) e grafos — com exemplos de implementação em C#.
- Algoritmos de ordenação e busca: ordenação rápida, ordenação por mesclagem, busca binária, busca por interpolação e sua adaptação para .NET.
- Trabalho com LINQ e coleções: como as estruturas de dados embutidas (List, Dictionary, HashSet, SortedSet) usam algoritmos internamente.
- Programação dinâmica e algoritmos gulosos: resolução de problemas clássicos (problema da mochila, busca do caminho mais curto, problema do caixeiro viajante).
- Recursos modernos do C# 12+ e .NET 8+: Span
, Memory , coleções indexáveis, records para estruturas de dados imutáveis.
Para quem é este livro
A publicação será útil para:
- Desenvolvedores Júnior e Pleno que desejam sistematizar conhecimentos e aprender a escrever código rápido e previsível.
- Estudantes e recém-formados que estudam Ciência da Computação e desejam aplicar a teoria na prática no ecossistema .NET.
- Engenheiros Sênior que precisam de um guia de referência para cenários não triviais de uso de estruturas de dados e algoritmos em sistemas de alta carga.
- Entrevistadores técnicos e aqueles que se preparam para entrevistas em grandes empresas de TI (o livro aborda problemas típicos de entrevistas reais).
O que você aprenderá
- Como escolher a estrutura de dados certa para um problema específico, evitando otimização prematura.
- Como implementar seu próprio iterador, cache com política LRU ou fila de prioridade sem bibliotecas de terceiros.
- Como usar algoritmos assíncronos (Parallel LINQ, abordagens baseadas em Task) para acelerar o processamento de grandes volumes de dados.
- Como testar e fazer benchmark de algoritmos usando BenchmarkDotNet.
- Como evitar erros comuns de memória e pressão do GC ao trabalhar com coleções.
Cada capítulo contém exemplos práticos, prontos para uso em projetos, e exercícios para fixação do conteúdo. O código está disponível para download e foi testado no .NET 8 e Visual Studio 2022.
Igor Semenov — arquiteto de software com 10 anos de experiência em desenvolvimento C#. Participou da criação de sistemas financeiros de alta carga e serviços em nuvem no Azure. Autor de cursos de algoritmos para desenvolvedores e palestrante frequente em conferências da área.