Você está na página 1de 23

ISPTEC - 2019

Engenharia Informática
Estruturas de Dados II

Aula 1
Prof. Sílvia António
EDII - Sumário

• Apresentação
• Estruturas de Dados 2 – Introdução
• Aplicação da ED2
• Ordenação
• Bibliografia

ISPTEC - silvia.castro@isptec.co.ao 2
EDII – Apresentação

Professor: Sílvia António

Email: silvia.antonio@isptec.co.ao

ISPTEC - silvia.castro@isptec.co.ao 3
EDII – Estruturas de Dados 2 - Introdução

O que vamos ver ?

• Algoritmos : como resolver um problema

• Estrutura de dados : como representar e armazenar a informação

ISPTEC - silvia.castro@isptec.co.ao 4
EDII – Estruturas de Dados 2 - Introdução

O que vamos ver ?

Tópicos Tipos
Ordenação em memória principal Selection, insertion, shellsort, quicksort…
Ordenação em memória secundária Intercalação e selecção por substituição
Pesquisa em memória principal Árvores binárias, árvores digitais, hash table …
Pesquisa em memória secundária Memória virtual, paginação, árvores B….
Grafos Procura em largura (BSF), em profundidade(DFS)…

ISPTEC - silvia.castro@isptec.co.ao 5
EDII – Estruturas de Dados 2 - Introdução

Aplicação

• Internet : motores de busca, sistemas distribuídos de ficheiros…

• Computadores : sistema de ficheiros, compiladores…

• Computação gráfica : Video games, realidade virtual…

• Segurança electrónica : cell phones, e-commerce, voto electrónico…

• Multimédia : reconhecimento facial…

• Redes sociais : Recomendações de sites, publicidade…

ISPTEC - silvia.castro@isptec.co.ao 6
EDII – Estruturas de Dados 2 - Introdução

Aplicação

ISPTEC - silvia.castro@isptec.co.ao 7
EDII – Algoritmos de ordenação

 Ordenação em memória principal

 Ordenação em memória secundária

ISPTEC - silvia.castro@isptec.co.ao 8
EDII – 1. Ordenação em memória principal

 Conceitos Gerais

 Selection sort

 Insertion sort

 Shellsort

 Quicksort

 Mergesort

 Heapesort

ISPTEC - silvia.castro@isptec.co.ao 9
EDII – Ordenação - Conceitos Gerais

• Os algoritmos de ordenação permitem organizar um conjunto de objectos numa determinada ordem.

• O objectivo principal da ordenação é facilitar a recuperação posterior dos elementos do conjunto


ordenado.

• Pode ser ordenado qualquer tipo de dados. Por ex: conjunto de números, nomes numa lista ou
ficheiros numa pasta do PC.

ISPTEC - silvia.castro@isptec.co.ao 10
EDII – Ordenação – Conceitos Gerais

Cenário da vida real • O resultado da procura será muito melhor, quanto


melhor organizada estiver a informação na pauta.
Procura da nota de exame numa pauta Por exemplo, ordenar por ordem alfabética ou
geral de todos os cursos da pelo número do aluno.

universidade, contendo o nome do • O resultado irá melhorar se a pauta estiver


aluno, número, nota do exame, curso, ordenada por cursos e turmas e depois ordenada
turma e turno. A pauta contém a por ordem alfabética ou número do aluno.
informação dos alunos de forma
• Quanto mais ordenada estiver a informação mais
completamente aleatória.
eficiente poderá ser o método de procura.

ISPTEC - silvia.castro@isptec.co.ao 11
EDII – Ordenação – Conceitos Gerais

Terminologia

Arquivo – Sequência de n itens r[0], r[1], …, r[n-1], em que cada item é


chamado de registo. Cada registo tem associado uma chave k[i].

Um arquivo está ordenado pela chave se i <j implica que k[i] precede k[j]

ISPTEC - silvia.castro@isptec.co.ao 12
EDII – Ordenação – Conceitos Gerais

Nº Nome Curso Turma Nota


Final
120 Ana Paula EINF EINF_1 11
123 Armindo Costa EINF EINF_1 10
registo 156 Cesar Vicente ECV ECV_2 12 arquivo
172 Daniel Santos EMC EMC_2 17
178 Tiago Carvalho EMC EMC_2 14
chave 187 Sidney Gaspar EPD EPD_1 12
190 Wilson Sousa EINF EINF_2 15

ISPTEC - silvia.castro@isptec.co.ao 13
EDII – Ordenação – Conceitos Gerais

Análise de Algoritmos Complexidade

• A complexidade de um algoritmo pode ser


• Existem vários algoritmos
também chamado de esforço ou custo
de ordenação requerido para executar uma operação crítica.

• Como saber qual o mais • A complexidade pode ser calculada tendo em


conta:
eficiente?
• Tempo de execução

• Espaço de memória utilizado

ISPTEC - silvia.castro@isptec.co.ao 14
EDII – 1. Ordenação em memória principal

 Conceitos Gerais

 Selection sort

 Insertion sort

 Shellsort

 Quicksort

 Mergesort

 Heapesort

ISPTEC - silvia.castro@isptec.co.ao 15
EDII – Selection sort

Definição

• Ordenação onde os sucessivos elementos são selecionados em sequência e dispostos nas suas
posições correctas pela ordem.

• Selecciona-se o menor elemento do conjunto e troca-se pelo primeiro elemento. Para os elementos
restantes(n-1), selecciona o menor elemento e troca-se pelo elemento da segunda posição e assim
sucessivamente.

ISPTEC - silvia.castro@isptec.co.ao 16
EDII – Selection sort

Demo

ISPTEC - silvia.castro@isptec.co.ao 17
EDII – Selection sort
Exemplo
Seleccionar o menor da lista
Início b d a c de n elementos e trocar com
a primeira posição

1º passo a d b c Seleccionar o menor da lista


de (n-1) elementos e trocar
com a posição seguinte
2º passo a b d c

3º passo a b c d

ISPTEC - silvia.castro@isptec.co.ao 18
EDII – Selection sort

Implementação em C

ISPTEC - silvia.castro@isptec.co.ao 19
EDII – Selection sort

Análise matemática

= (n-1) + (n-2) + (n-3) + …+1


𝑛(𝑛−1)
Complexidade = 2
=O(𝑛2 )
• Medida pelo número total de
Para grandes quantidades de dados, a
comparações ordenação torna-se lenta.

https://www.toptal.com/developers/sorting-algorithms/selection-sort Animação online

ISPTEC - silvia.castro@isptec.co.ao 20
EDII – Selection sort

Exercícios

• Dado os conjuntos A ={3,4,9,2,5,8,11} e B = SORTEXAMPLE

• Ordene os conjuntos, usando o algoritmo de selecção. Mostre todos


os passos

• Implemente a versão recursiva do algoritmo

ISPTEC - silvia.castro@isptec.co.ao 21
Bibliografia
• AARON M.T.; LANGSAM, Y.; MOSHA, J.A. Estruturas de Dados Usando C. Pearson Education, 2005.

• CORMEN T.H.; LEISERSON C.E.; RIVEST, R.L. Algoritmos - Teoria e Prática. Elsevier, 2002.

• SEDGEWICK, R. Algorithms in C. 3ª ed. Pearson Education, 1998. ZIVIANI, N. Projeto de Algoritmos - com
implementação em Pascal e C. Cengage Learning, 1992.

• Algorithms, Part I – www.cousera.org/learn/algorithms-part1

ISPTEC - silvia.castro@isptec.co.ao 22
Lei a matéria depois das aulas

Tire as suas dúvidas com o professor

Obrigada! Não deixe acumular matéria

Faça vários exercícios diferentes

ISPTEC - silvia.castro@isptec.co.ao 23

Você também pode gostar