Aula 16: Laboratório - Métodos simples de ordenação (parte...

23
1 Aula 16: Laboratório - Métodos simples de ordenação (parte 2) MCTA028 – Programação Estruturada Prof. Jesús P. Mena-Chalco [email protected] 3Q-2017

Transcript of Aula 16: Laboratório - Métodos simples de ordenação (parte...

Page 1: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

1

Aula 16: Laboratório- Métodos simples de ordenação (parte 2)

MCTA028 – Programação Estruturada

Prof. Jesús P. Mena-Chalco

[email protected]

3Q-2017

Page 2: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

2

Atividade 01: Benchmark

Page 3: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

3

Vetores ordenados

Page 4: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

4

Vetor aleatório

Page 5: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

5

Vetor Parcialmente Ordenados

Page 6: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

6

Benchmark

$ sh ­v benchmark.sh

Page 7: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

7

Sobre ordenação

Page 8: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

8

Ordenação

Ordenar corresponde ao processo de re-arranjar um conjunto de objetos em ordem ascendente ou descendente.

Por que ordenar?O objetivo principal da ordenação é facilitar a recuperação posterior de itens do conjunto ordenado.Geralmente considerado no primeiro passo para resolver um problema prático.

As ordens mais utilizadas são a numérica e lexicográfica.

Page 9: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

9

21/03/2016

Page 10: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

10

Algoritmos para ordenar elementos

Baseado em comparações:Bogo sort

Selection sort

Insertion sort

Bubble sort

Mergesort

Quicksort

Heapsort

Ordenação em tempo linear:Radix sort

Ordenação de primeiros elementos (seleção parcial):Partial Quicksort

Page 11: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

11

Algoritmos de ordenação

Page 12: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

12

Selection Sort

Animação: https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html

Page 13: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

13

Selection Sort

Page 14: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

14

Selection sort

https://www.youtube.com/watch?v=92BfuxHn2XE

Page 15: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

15

Insertion Sort

Animação: https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html

Método preferido dos jogadores de cartas

Em cada passo, a partir do i=1, o i-ésimo elemento da sequência fonte é apanhado e transferido para a sequência destino, sendo inserido no seu lugar apropriado.

1 5 7 10 55 6

1 5 7 10 55

6

0 1 2 3 4 5 6 …

Page 16: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

16

Insertion Sort

Número de comparações T(n):- No melhor caso: T(n) = n-1- No pior caso: T(n) = ?

Page 17: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

17

Insertion sort

https://www.youtube.com/watch?v=8oJS1BMKE64

Page 18: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

18

Bubble Sort

O algoritmo de ordenação baseado em troca, consiste em intercalar pares de elementos que não estão em ordem até que não exista mais pares.

O principio do bolha é a troca de valores entre posições consecutivas fazendo com que os valores mais altos “borbulhem” para o final do vetor.

Animação: https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html

Page 19: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

19

Bubble Sort

Número de comparações T(n):- No melhor caso: T(n) = n²/2 – n/2- No pior caso: T(n) = n²/2 – n/2

Número de comparações T(n):- No melhor caso: T(n) = n-1- No pior caso: T(n) = n²/2 – n/2

Page 20: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

20

Bubble sort

https://www.youtube.com/watch?v=Cq7SMsQBEUw

Page 21: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

21

Atividade 02

- Tempo de processamento (segundos)- Número de comparações

Page 22: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

22

Atividade 02: Teste empírico

Page 23: Aula 16: Laboratório - Métodos simples de ordenação (parte 2)professor.ufabc.edu.br/~jesus.mena/courses/pe-3q-2017/PE-aula16.pdf1 Aula 16: Laboratório - Métodos simples de ordenação

23

http://sortvis.org/

http://sorting.at/