int
tipo
int a
variável
int a[]
vetor
if
condicional
for
loop
&
endereço
int *a
ponteiro
struct
registro
void soma(int a, int b)
função
malloc
alocação de
memória
1. Ir até o armário
2. Abrir o armário
3. Pegar o pão
4. Colocar o pão na mesa
5. ...
algoritmo
Tutoria AEDSI
Pablo Silva
Pedidos E NÃO REGRAS!
• Não usem o celular
• Tentem chegar no horário
• Perguntem e respondam
Conceitos
iniciais
O que é um algoritmo?
Sequência de passos para
resolver um problema.
Tipos de dados?
&23423sdf 5
&s2sdf3sdf “sdf”
&89423sdf ‘c’
.
.
.
int
char[]
char
Tipos de dados?
&23423sdf 5
&s2sdf3sdf “sdf”
&89423sdf ‘c’
.
.
.
&89423s6f 1.5
int
char[]
char
char
Métodos para
interpret...
Tipos de dados?
Programadores não se importam muito com
a representação no hardware, mas sim por
exemplo, com o conceito m...
TAD?
Biblioteca
• Livros
• Mesas
• Estantes
Estrutura
de dados
TAD?
Antes do TAD, o programador
não tinha uma maneira de juntar
as coisas para formar novos
tipos. Ele tinha que supor!!!...
TAD?
Quando não pensamos nas estruturas
de dados da maneira como elas são
implementadas, mas sim das
operações que elas su...
TAD?
Biblioteca
• Emprestar livros
• Achar livros
• Receber livros
Operações
TAD?
Mas e o modelo matemático?
v (conjunto de valores), o (operações)
Par (v,o)
Ex.: Naturais e reais
Análise da
complexidade de
algoritmos
Qual o é custo?
Qual o é custo?
Tempo de execução
Memória gasta
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
5 9 8 4 6 2 1 12 55 7
1
Análise de algoritmos
1 2 4 6 7 9 10 12 55 80
1
Análise de algoritmos
1 2 4 6 7 9 10 12 55 80
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
80 55 12 10 9 8 7 5 2 1
1
Análise de algoritmos
Análise de algoritmos
Busca linear ou sequencial
Melhor caso: O elemento está na primeira posição.
Pior caso: O elemento e...
1 2 3 4 6 8 9 12 55 70
1
Análise de algoritmos
1 2 4 6 7
1
Análise de algoritmos
9 10 12 55 80
1 2 4
1
Análise de algoritmos
6 7
1 2
1
Análise de algoritmos
4
2
1
Análise de algoritmos
1
2
1
Análise de algoritmos
1
Análise de algoritmos
Busca binária
• Melhor caso: Quando o elemento procurado
está exatamente no meio do vetor.
• Pior ca...
Existem muitos
Algoritmos de busca!!!
A* B*
Ternary
Uniform
Best-First
Análise de algoritmos
Existem vários algoritmos que
resolvem o mesmo problema, uns são
piores, outros melhores. Mas sempre...
Próxima aula
Análise da complexidade dos
algoritmos
Resolver Exercícios
Perguntas?
Próximos SlideShares
Carregando em…5
×

Conceitos básicos de AEDS

189 visualizações

Publicada em

Material de apoio das aulas de tutoria de Algoritmos e Estrutura de dados da Universidade Federal de Ouro Preto, Campus João Monlevade. O conteúdo abordado é sobre conceitos básicos de Algoritmos e Estrutura de Dados..

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
189
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Conceitos básicos de AEDS

  1. 1. int tipo
  2. 2. int a variável
  3. 3. int a[] vetor
  4. 4. if condicional
  5. 5. for loop
  6. 6. & endereço
  7. 7. int *a ponteiro
  8. 8. struct registro
  9. 9. void soma(int a, int b) função
  10. 10. malloc alocação de memória
  11. 11. 1. Ir até o armário 2. Abrir o armário 3. Pegar o pão 4. Colocar o pão na mesa 5. ... algoritmo
  12. 12. Tutoria AEDSI Pablo Silva
  13. 13. Pedidos E NÃO REGRAS! • Não usem o celular • Tentem chegar no horário • Perguntem e respondam
  14. 14. Conceitos iniciais
  15. 15. O que é um algoritmo? Sequência de passos para resolver um problema.
  16. 16. Tipos de dados? &23423sdf 5 &s2sdf3sdf “sdf” &89423sdf ‘c’ . . . int char[] char
  17. 17. Tipos de dados? &23423sdf 5 &s2sdf3sdf “sdf” &89423sdf ‘c’ . . . &89423s6f 1.5 int char[] char char Métodos para interpretar o conteúdo da memória do computador.
  18. 18. Tipos de dados? Programadores não se importam muito com a representação no hardware, mas sim por exemplo, com o conceito matemático que um inteiro tem e quais operações ele suporta!
  19. 19. TAD? Biblioteca • Livros • Mesas • Estantes Estrutura de dados
  20. 20. TAD? Antes do TAD, o programador não tinha uma maneira de juntar as coisas para formar novos tipos. Ele tinha que supor!!! É uma abstração da realidade.
  21. 21. TAD? Quando não pensamos nas estruturas de dados da maneira como elas são implementadas, mas sim das operações que elas suportam, então temos um Tipo Abstrato de Dados.
  22. 22. TAD? Biblioteca • Emprestar livros • Achar livros • Receber livros Operações
  23. 23. TAD? Mas e o modelo matemático? v (conjunto de valores), o (operações) Par (v,o) Ex.: Naturais e reais
  24. 24. Análise da complexidade de algoritmos
  25. 25. Qual o é custo?
  26. 26. Qual o é custo? Tempo de execução Memória gasta
  27. 27. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  28. 28. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  29. 29. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  30. 30. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  31. 31. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  32. 32. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  33. 33. 5 9 8 4 6 2 1 12 55 7 1 Análise de algoritmos
  34. 34. 1 2 4 6 7 9 10 12 55 80 1 Análise de algoritmos
  35. 35. 1 2 4 6 7 9 10 12 55 80 1 Análise de algoritmos
  36. 36. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  37. 37. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  38. 38. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  39. 39. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  40. 40. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  41. 41. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  42. 42. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  43. 43. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  44. 44. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  45. 45. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  46. 46. 80 55 12 10 9 8 7 5 2 1 1 Análise de algoritmos
  47. 47. Análise de algoritmos Busca linear ou sequencial Melhor caso: O elemento está na primeira posição. Pior caso: O elemento está na última posição. Caso médio: O elemento está perto do meio.
  48. 48. 1 2 3 4 6 8 9 12 55 70 1 Análise de algoritmos
  49. 49. 1 2 4 6 7 1 Análise de algoritmos 9 10 12 55 80
  50. 50. 1 2 4 1 Análise de algoritmos 6 7
  51. 51. 1 2 1 Análise de algoritmos 4
  52. 52. 2 1 Análise de algoritmos 1
  53. 53. 2 1 Análise de algoritmos 1
  54. 54. Análise de algoritmos Busca binária • Melhor caso: Quando o elemento procurado está exatamente no meio do vetor. • Pior caso: Quando o elemento está na primeira posição do vetor ou quando está na última. • Caso médio: Elemento próximo do meio.
  55. 55. Existem muitos Algoritmos de busca!!! A* B* Ternary Uniform Best-First
  56. 56. Análise de algoritmos Existem vários algoritmos que resolvem o mesmo problema, uns são piores, outros melhores. Mas sempre depende da entrada de dados do seu problema!!!
  57. 57. Próxima aula Análise da complexidade dos algoritmos Resolver Exercícios
  58. 58. Perguntas?

×