Prefácio
Este trabalho foi traduzido com recurso a IA. Agradecemos o teu feedback e comentários: translation-feedback@oreilly.com
A quem se destina este livro
Se estás a ler este livro, presumo que já tenhas um conhecimento prático de uma linguagem de programação, como o Python. Se nunca programaste antes, encorajo-te a aprenderes primeiro uma linguagem de programação e depois a voltares! Utilizo Python neste livro porque é acessível tanto a programadores como a não-programadores.
Os algoritmos são concebidos para resolver problemas comuns que surgem frequentemente em aplicações de software. Quando ensino algoritmos a alunos de licenciatura, tento fazer a ponte entre o conhecimento prévio dos alunos e os conceitos de algoritmo que estou a ensinar. Muitos manuais têm explicações cuidadosamente escritas - mas sempre demasiado breves. Sem um guia que explique como navegar neste material, os alunos são muitas vezes incapazes de aprender algoritmos por si próprios.
Num parágrafo e na Figura P-1, deixa-me mostrar-te o meu objetivo para o livro. Apresento uma série de estruturas de dados que explicam como organizar informações usando tipos primitivos de tamanho fixo, como valores inteiros de 32 bits ou valores de ponto flutuante de 64 bits. Alguns algoritmos, como o Binary Array Search, trabalham diretamente com estruturas de dados. Algoritmos mais complicados, especialmente algoritmos de grafos, dependem de um número de tipos de dados abstractos fundamentais, que introduzo conforme ...