O objetivo deste livro é apresentar conceitos fundamentais de algoritmos e estruturas de dados. Neste livro, consta revisão de matemática básica, introdução a técnicas de construção de algoritmos, análise de complexidade, algoritmos em grafos, teoria da computação e NP-Completude. A abordagem consiste em um equilíbrio entre o rigor matemático e a didática necessária nas apresentações, com ênfase na compreensão do conceito matemático pertinente a cada algoritmo. Este livro atende a uma demanda por livros com uma linguagem matemática precisa, mas sem formalismo e abstração excessivos, em língua portuguesa, para as disciplinas nas quais foi concebido. A Editora UFLA tem a convicção de que entrega a estudantes, professores e profissionais da área um livro de altíssima qualidade que contribuirá muito para o ensino de algoritmos. A obra foi elaborada para ser utilizada como livro-texto de terceira e quarta disciplinas de algoritmos em cursos de Ciência da Computação, Sistemas de Informação, Engenharia da Computação, Matemática Computacional, Engenharia de Controle e Automação, Licenciatura em Computação, cursos tecnólogos de computação e outras áreas técnico-científicas, como Engenharias, Geociências, Matemática e Física. Também pode ser utilizado como leitura complementar da disciplina de Teoria da Computação e como livro-texto em cursos de nivelamento em disciplinas de pós-graduação em Ciência da Computação, Modelagem Computacional, Matemática Aplicada, Física e Engenharias.