Conceitos básicos de AEDS

58
int tipo

Transcript of Conceitos básicos de AEDS

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

mallocalocação de

memória

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

Perguntas?