SlideShare uma empresa Scribd logo
Estrutura de
Dados
Quando usar o quê?
profa. Divani Barbosa
Aula 15 (final)
Resumo
Estruturas de dados especializadas:
Pilhas, filas, filas de prioridades e heap
Estruturas de dados de propósito geral:
Vetores, listas encadeadas, arvore binaria de busca e
tabela hash
Ordenação:
Inserção, seleção, bubblesort, mergesort e quicksort
Pesquisa:
Linear (sequencial), binária e hashing
Prioridades (acesso rápido ao maior item)
Vetor ordenado, fila de prioridades, arvore binaria e
heapsort 2
3
Relembrando ... Notação Big O
Usada para expressar o quanto um algoritmo
computacional é eficiente.
Informa como a velocidade de um algoritmo está
relacionada com o numero de itens a ser avaliado.
No pior caso o tempo de pesquisa K será multiplicado
pelo numero total de itens (n):
Tempo total = K * n
No pior caso o tempo de pesquisa K será multiplicado
pelo logaritmo na base 2 do numero de itens:
Tempo total = K * log2(n)
4
Gráfico Big O Demonstra como tempos de execução
são afetados pelo numero de itens
5
Comparação entre os
Algoritmos de Busca
Sequencial
(aula 2 – parte 2)
Binária
(aula 2 – parte 2)
Hashing
(aula 11)
Vantagem Simplicidade Eficiência Eficiência
Desvantagem Custo elevado Arranjo deve estar
ordenado
Não recupera em
ordem alfabética
Pior Caso O(n) O(log n) O(n)
Caso Médio O(n) O(log n) O(1)
Lembrando ... O objetivo principal da Tabela Hash é o de a partir de
uma chave simples, fazer uma busca rápida e obter o valor desejado.
6
Estrutura Inserção Eliminação Acesso ao
item com
maior chave
Vetor Ordenado (aula 2 – parte 2) O(n) O(n) O(1)
Fila de Prioridade (aula 8 – parte 2) O(n) O(1) O(1)
Arvore Binária (pior caso)
(aula 13 – parte 1 e 2)
O(n) O(n) O(n)
Arvore Binária (balanceada)
(aula 13 – parte 1 e 2)
O(log n) O(log n) O(log n)
HeapSort (aula 14 – parte 1 e 2) O(log n) O(log n) O(1)
Comparação das Estruturas de
Armazenamento Vistas que oferecem acesso
rápido ao item de dados com a maior chave
7
Algoritmo Média Pior Melhor
Bolha (aula 2 – parte 2) O(n2) O(n2) O(n)
Seleção (aula 4 – parte 1) O(n2) O(n2) O(n2)
Inserção (aula 4 – parte 1) O(n2) O(n2) O(n)
MergeSort
(aula 4 – parte 2)
O(n*log n) O(n*log n) O(n*log n)
QuickSort
(aula 4 – parte 2)
O(n*log n) O(n2) O(n*log n)
Comparação entre os Algoritmos de
Ordenação
8
Estrutura Inserção Eliminação Comentário
Pilha (vetor ou lista encadeada)
(aula 2 – parte 2 e aula 9 – parte 2)
O(1) O(1)
Elimina item
inserido mais
recentemente
Fila (vetor ou lista encadeada)
(aula 7 – parte 2 e aula 9 – parte 2)
O(1) O(1)
Elimina item
inserido
menos
recentemente
Fila Prioridade (vetor ordenado)
(aula 8 – parte 2)
O(n) O(1)
Elimina item
com prioridade
mais alta
HeapSort (fila de prioridade)
(aula 14 – parte 1 e 2)
O(log n) O(log n)
Elimina item
com prioridade
mais alta
Comparaço entre todas as Estruturas de
Armazenamento Vistas
Comparação entre as Estruturas de
Armazenamento de Propósito Especial Vistas
9
Estrutura Inserção Eliminação Pesquisa
Vetor (aula 2 – parte 1) O(1) O(n) O(n)
Vetor Ordenado (aula 2 – parte 2) O(n) O(n) O(log n)
Lista Encadeada (aulas 9 e 10) O(1) O(n) O(n)
Lista Encadeada Ordenada
(aula 10 – parte 2)
O(n) O(n) O(n)
Arvore Binária (pior caso)
(aula 13 – parte 1 e 2)
O(n) O(n) O(n)
Arvore Binária (balanceada)
(aula 13 – parte 1 e 2)
O(log n) O(log n) O(log n)
Tabela Hash (pior caso)
(aula 11)
O(n) O(n) O(n)
Tabela Hash (caso médio)
(aula 11)
O(1) O(1) O(1)
Comparação entre as Estruturas de
Armazenamento de Propósito Geral Vistas
Pequena
quantidade de
dados?
Fila de
Prioridade
Quantidade de
dados
previsível?
Pesquisa e
inserção tem de
ser muito
rápidas?
Tabela
HASH
Vetor
Ordenado
Velocidade de
pesquisa mais
importante que
velocidade de
inserção?
Distribuição de
chaves
garantidamente
aleatórias?
Arvore
Binaria
Vetor não
Ordenado
HeapSort
Início
S
S
S
S
S
N
N
N
N
N
Fonte: Robert Lafore, Estrutura de Dados e Algoritmos em Java,
Editora Ciência Moderna, 2004.
Figura: Relacionamentos entre
as estruturas de dados vistas
11
FIM
Calendário
5- Feriado Aniversário Taubaté
21 – Termino do segundo
semestre letivo
Dia Aula
4 HOJE – Aula Quando usar o quê?
6 Ultimo prazo envio Trabalho 2
11 Simulado Prova 2
12 Prova 2
18 Simulado Prova 3
19 Prova 3
20 Prazo final para alterações no
sistema SIGA
Email: divani.gavinier@fatec.sp.gov.br
Mandar arquivo do Trabalho em
formato PDF

Mais conteúdo relacionado

Mais procurados

Listas em C
Listas em CListas em C
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
Adriano Teixeira de Souza
 
Aula 01
Aula 01Aula 01
Aula 01
Igor Viveiros
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
Adriano Teixeira de Souza
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
Adriano Teixeira de Souza
 
Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
Sérgio Souza Costa
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
Adriano Teixeira de Souza
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
Adriano Teixeira de Souza
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
Adriano Teixeira de Souza
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
Adriano Teixeira de Souza
 
Pged 04
Pged 04Pged 04
Pged 04
samuelthiago
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
Sandro Arpi
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
Lorival Smolski Chapuis
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
Sérgio Souza Costa
 
Lpiii dp-apostila
Lpiii dp-apostilaLpiii dp-apostila
Lpiii dp-apostila
Jonathan Henrique
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
Patrick Silva
 
Python
PythonPython
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
Aparicio Junior
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
Gabriel Albuquerque
 
Knuth
KnuthKnuth

Mais procurados (20)

Listas em C
Listas em CListas em C
Listas em C
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Aula 01
Aula 01Aula 01
Aula 01
 
Estrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listasEstrutura de dados - Implementação de filas com listas
Estrutura de dados - Implementação de filas com listas
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
 
Estrutura de dados - Filas
Estrutura de dados - FilasEstrutura de dados - Filas
Estrutura de dados - Filas
 
Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Estrutura de dados - Pilhas
Estrutura de dados - PilhasEstrutura de dados - Pilhas
Estrutura de dados - Pilhas
 
Estrutura de dados em Java - Pilhas
Estrutura de dados em Java - PilhasEstrutura de dados em Java - Pilhas
Estrutura de dados em Java - Pilhas
 
Pged 04
Pged 04Pged 04
Pged 04
 
Trabalho de algoritmos
Trabalho de algoritmosTrabalho de algoritmos
Trabalho de algoritmos
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
 
Lpiii dp-apostila
Lpiii dp-apostilaLpiii dp-apostila
Lpiii dp-apostila
 
Pilha e filas
Pilha e filasPilha e filas
Pilha e filas
 
Python
PythonPython
Python
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
 
Knuth
KnuthKnuth
Knuth
 

Mais de Divani Barbosa

Banco de Dados MySQL + NetBeans Java + Interface Grafica
Banco de Dados MySQL + NetBeans Java + Interface GraficaBanco de Dados MySQL + NetBeans Java + Interface Grafica
Banco de Dados MySQL + NetBeans Java + Interface Grafica
Divani Barbosa
 
Aula 19
Aula 19Aula 19
Aula 18
Aula 18Aula 18
Aula 17
Aula 17Aula 17
Aula 15
Aula 15Aula 15
Aula14
Aula14Aula14
Aula 12
Aula 12Aula 12
Aula 11
Aula 11Aula 11
Aula 10
Aula 10 Aula 10
Aula 10
Divani Barbosa
 
Aula 9
Aula 9Aula 9
Aula 8
Aula 8Aula 8
Aula 7
Aula 7 Aula 7
Aula 6
Aula 6Aula 6
Aula 5
Aula 5 Aula 5
Aula 4
Aula 4 Aula 4
Aula 3
Aula 3Aula 3
Aula 2
Aula 2Aula 2
Aula 1
Aula 1Aula 1

Mais de Divani Barbosa (18)

Banco de Dados MySQL + NetBeans Java + Interface Grafica
Banco de Dados MySQL + NetBeans Java + Interface GraficaBanco de Dados MySQL + NetBeans Java + Interface Grafica
Banco de Dados MySQL + NetBeans Java + Interface Grafica
 
Aula 19
Aula 19Aula 19
Aula 19
 
Aula 18
Aula 18Aula 18
Aula 18
 
Aula 17
Aula 17Aula 17
Aula 17
 
Aula 15
Aula 15Aula 15
Aula 15
 
Aula14
Aula14Aula14
Aula14
 
Aula 12
Aula 12Aula 12
Aula 12
 
Aula 11
Aula 11Aula 11
Aula 11
 
Aula 10
Aula 10 Aula 10
Aula 10
 
Aula 9
Aula 9Aula 9
Aula 9
 
Aula 8
Aula 8Aula 8
Aula 8
 
Aula 7
Aula 7 Aula 7
Aula 7
 
Aula 6
Aula 6Aula 6
Aula 6
 
Aula 5
Aula 5 Aula 5
Aula 5
 
Aula 4
Aula 4 Aula 4
Aula 4
 
Aula 3
Aula 3Aula 3
Aula 3
 
Aula 2
Aula 2Aula 2
Aula 2
 
Aula 1
Aula 1Aula 1
Aula 1
 

Último

Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (6)

Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

Aula 22

  • 1. Estrutura de Dados Quando usar o quê? profa. Divani Barbosa Aula 15 (final)
  • 2. Resumo Estruturas de dados especializadas: Pilhas, filas, filas de prioridades e heap Estruturas de dados de propósito geral: Vetores, listas encadeadas, arvore binaria de busca e tabela hash Ordenação: Inserção, seleção, bubblesort, mergesort e quicksort Pesquisa: Linear (sequencial), binária e hashing Prioridades (acesso rápido ao maior item) Vetor ordenado, fila de prioridades, arvore binaria e heapsort 2
  • 3. 3 Relembrando ... Notação Big O Usada para expressar o quanto um algoritmo computacional é eficiente. Informa como a velocidade de um algoritmo está relacionada com o numero de itens a ser avaliado. No pior caso o tempo de pesquisa K será multiplicado pelo numero total de itens (n): Tempo total = K * n No pior caso o tempo de pesquisa K será multiplicado pelo logaritmo na base 2 do numero de itens: Tempo total = K * log2(n)
  • 4. 4 Gráfico Big O Demonstra como tempos de execução são afetados pelo numero de itens
  • 5. 5 Comparação entre os Algoritmos de Busca Sequencial (aula 2 – parte 2) Binária (aula 2 – parte 2) Hashing (aula 11) Vantagem Simplicidade Eficiência Eficiência Desvantagem Custo elevado Arranjo deve estar ordenado Não recupera em ordem alfabética Pior Caso O(n) O(log n) O(n) Caso Médio O(n) O(log n) O(1) Lembrando ... O objetivo principal da Tabela Hash é o de a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado.
  • 6. 6 Estrutura Inserção Eliminação Acesso ao item com maior chave Vetor Ordenado (aula 2 – parte 2) O(n) O(n) O(1) Fila de Prioridade (aula 8 – parte 2) O(n) O(1) O(1) Arvore Binária (pior caso) (aula 13 – parte 1 e 2) O(n) O(n) O(n) Arvore Binária (balanceada) (aula 13 – parte 1 e 2) O(log n) O(log n) O(log n) HeapSort (aula 14 – parte 1 e 2) O(log n) O(log n) O(1) Comparação das Estruturas de Armazenamento Vistas que oferecem acesso rápido ao item de dados com a maior chave
  • 7. 7 Algoritmo Média Pior Melhor Bolha (aula 2 – parte 2) O(n2) O(n2) O(n) Seleção (aula 4 – parte 1) O(n2) O(n2) O(n2) Inserção (aula 4 – parte 1) O(n2) O(n2) O(n) MergeSort (aula 4 – parte 2) O(n*log n) O(n*log n) O(n*log n) QuickSort (aula 4 – parte 2) O(n*log n) O(n2) O(n*log n) Comparação entre os Algoritmos de Ordenação
  • 8. 8 Estrutura Inserção Eliminação Comentário Pilha (vetor ou lista encadeada) (aula 2 – parte 2 e aula 9 – parte 2) O(1) O(1) Elimina item inserido mais recentemente Fila (vetor ou lista encadeada) (aula 7 – parte 2 e aula 9 – parte 2) O(1) O(1) Elimina item inserido menos recentemente Fila Prioridade (vetor ordenado) (aula 8 – parte 2) O(n) O(1) Elimina item com prioridade mais alta HeapSort (fila de prioridade) (aula 14 – parte 1 e 2) O(log n) O(log n) Elimina item com prioridade mais alta Comparaço entre todas as Estruturas de Armazenamento Vistas Comparação entre as Estruturas de Armazenamento de Propósito Especial Vistas
  • 9. 9 Estrutura Inserção Eliminação Pesquisa Vetor (aula 2 – parte 1) O(1) O(n) O(n) Vetor Ordenado (aula 2 – parte 2) O(n) O(n) O(log n) Lista Encadeada (aulas 9 e 10) O(1) O(n) O(n) Lista Encadeada Ordenada (aula 10 – parte 2) O(n) O(n) O(n) Arvore Binária (pior caso) (aula 13 – parte 1 e 2) O(n) O(n) O(n) Arvore Binária (balanceada) (aula 13 – parte 1 e 2) O(log n) O(log n) O(log n) Tabela Hash (pior caso) (aula 11) O(n) O(n) O(n) Tabela Hash (caso médio) (aula 11) O(1) O(1) O(1) Comparação entre as Estruturas de Armazenamento de Propósito Geral Vistas
  • 10. Pequena quantidade de dados? Fila de Prioridade Quantidade de dados previsível? Pesquisa e inserção tem de ser muito rápidas? Tabela HASH Vetor Ordenado Velocidade de pesquisa mais importante que velocidade de inserção? Distribuição de chaves garantidamente aleatórias? Arvore Binaria Vetor não Ordenado HeapSort Início S S S S S N N N N N Fonte: Robert Lafore, Estrutura de Dados e Algoritmos em Java, Editora Ciência Moderna, 2004. Figura: Relacionamentos entre as estruturas de dados vistas
  • 12. Calendário 5- Feriado Aniversário Taubaté 21 – Termino do segundo semestre letivo Dia Aula 4 HOJE – Aula Quando usar o quê? 6 Ultimo prazo envio Trabalho 2 11 Simulado Prova 2 12 Prova 2 18 Simulado Prova 3 19 Prova 3 20 Prazo final para alterações no sistema SIGA Email: divani.gavinier@fatec.sp.gov.br Mandar arquivo do Trabalho em formato PDF