Apresentação do curso de Estruturas de Dados
-
Estruturas de dados
(= data structures)
servem para organizar os dados de um problema
de modo que eles possam ser processados mais eficientemente.
-
Eficiência tem a ver com escalabilidade:
como o tempo de processamento cresce
quando a quantidade de dados (ou seja, o tamanho) do problema
aumenta?
O tempo cresce de maneira moderada?
Cresce de maneira explosiva?
-
Exemplo: Qual a diferença entre
encontrar uma determinada palavra em uma lista de 10 palavras
e encontrar a palavra em uma lista de 10000 palavras?
O tempo de processamento é apenas dez vezes maior?
É mil vezes maior?
Ou é um milhão de vezes maior?
Abstração
-
Este curso de Estruturas de Dados trata de programação de computadores
num nível de abstração mais alto
que cursos introdutórios de programação.
Introduz o conceito de tipo abstrato de dados (ADT)
e
separa esses tipos abstratos de suas implementações concretas.
-
Os ADTs
(como strings, pilhas, filas,
filas priorizadas,
tabelas de símbolos,
autômatos,
grafos,
memória virtual, etc.)
são
abstrações essencias para a concepção de algoritmos
inteligíveis e eficientes
para uma grande variedade de problemas.
Material de estudo