Cap.1 livro ziviani
Última alteração: 1 de Abril de 2004
∗ Transparências
elaboradas por Charles Ornelas Almeida e Nivio Ziviani
Projeto de Algoritmos – Cap.1 Introdução – Seção 1.1
1
Algoritmos, Estruturas de Dados e Programas
• Os algoritmos fazem parte do dia-a-dia das pessoas. Exemplos de algoritmos: – instruções para o uso de medicamentos, – indicações de como montar um aparelho, – uma receita de culinária. • Seqüência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema. • Segundo Dijkstra, um algoritmo corresponde a uma descrição de um padrão de comportamento, expresso em termos de um conjunto finito de ações. – Executando a operação a + b percebemos um padrão de comportamento, mesmo que a operação seja realizada para valores diferentes de a e b.
Projeto de Algoritmos – Cap.1 Introdução – Seção 1.1
2
Estruturas de dados
• Estruturas de dados e algoritmos estão intimamente ligados: – não se pode estudar estruturas de dados sem considerar os algoritmos associados a elas, – assim como a escolha dos algoritmos em geral depende da representação e da estrutura dos dados. • Para resolver um problema é necessário escolher uma abstração da realidade, em geral mediante a definição de um conjunto de dados que representa a situação real. • A seguir, deve ser escolhida a forma de representar esses dados.
Projeto de Algoritmos – Cap.1 Introdução – Seção 1.1
3
Escolha da Representação dos Dados
• A escolha da representação dos dados é determinada, entre outras, pelas operações a serem realizadas sobre os dados. • Considere a operação de adição: – Para pequenos números, uma boa representação é por meio de barras verticais (caso em que a operação de adição é bastante simples). – Já a representação por dígitos decimais requer regras relativamente complicadas, as quais devem ser memorizadas. – Entretanto, quando consideramos a adição de grandes números é mais fácil a representação por dígitos decimais (devido