1. Ir até o armário2. Abrir o armário3. Pegar o pão4. Colocar o pão na mesa5. ...
algoritmo
Tutoria AEDSIPablo 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 interpretar o conteúdo da memória do computador.
Tipos de dados?
Programadores não se importam muito coma representação no hardware, mas sim porexemplo, com o conceito matemático queum inteiro tem e quais operações elesuporta!
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!!!
É uma abstração da realidade.
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.
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çãoMemó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 está na última posição.Caso médio: O elemento está perto do meio.
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 algoritmosBusca 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.
Existem muitosAlgoritmos de busca!!!
A* B*Ternary
UniformBest-First
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!!!
Próxima aula
Análise da complexidade dos algoritmosResolver Exercícios