![Page 1: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/1.jpg)
Algoritmos e Estruturas de Dados II
Algoritmos de OrdenaçãoProf. Tiago Eugenio de Melo
www.tiagodemelo.info
![Page 2: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/2.jpg)
2/223
Observações
● As palavras com a fonte Courier indicam as palavras-reservadas da linguagem de programação.
![Page 3: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/3.jpg)
3/223
Referências
● Algorithms in a Nutshell. George T. Heineman, Gary Pollice, Stanley Selkow. O’Reilly Media, 2009.
● Projetos de Algoritmos – com implementações em Pascal e C. Nivio Ziviani. 2a edição. Thomson, 2005.
![Page 4: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/4.jpg)
4/223
Algoritmos de Ordenação
![Page 5: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/5.jpg)
5/223
Introdução
![Page 6: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/6.jpg)
6/223
Introdução
● Algoritmos de ordenação organizam os elementos de uma lista em uma ordem (ascendente ou descendente).
![Page 7: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/7.jpg)
7/223
Introdução
● Algoritmos de ordenação organizam os elementos de uma lista em uma ordem (ascendente ou descendente).
● Ordenação é uma das mais importantes categorias de algoritmos da Computação.
![Page 8: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/8.jpg)
8/223
Introdução
● Algoritmos de ordenação organizam os elementos de uma lista em uma ordem (ascendente ou descendente).
● Ordenação é uma das mais importantes categorias de algoritmos da Computação.
● Frequentemente são usados para diminuir a complexidade de um problema.
![Page 9: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/9.jpg)
9/223
Introdução
● Algoritmos de ordenação organizam os elementos de uma lista em uma ordem (ascendente ou descendente).
● Ordenação é uma das mais importantes categorias de algoritmos da Computação.
● Frequentemente são usados para diminuir a complexidade de um problema.
● Aplicam-se em problemas de banco de dados ou de recuperação de informação.
![Page 10: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/10.jpg)
10/223
Classificação dos Algoritmos
![Page 11: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/11.jpg)
11/223
Classificação dos Algoritmos
● Número de comparações
![Page 12: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/12.jpg)
12/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas
![Page 13: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/13.jpg)
13/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
![Page 14: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/14.jpg)
14/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
– Ordenação interna
![Page 15: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/15.jpg)
15/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
– Ordenação interna● Todos os dados estão em memória principal (RAM).
![Page 16: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/16.jpg)
16/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
– Ordenação interna● Todos os dados estão em memória principal (RAM).
– Ordenação externa
![Page 17: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/17.jpg)
17/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
– Ordenação interna● Todos os dados estão em memória principal (RAM).
– Ordenação externa● Memória principal não cabe todos os dados.
![Page 18: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/18.jpg)
18/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
– Ordenação interna● Todos os dados estão em memória principal (RAM).
– Ordenação externa● Memória principal não cabe todos os dados.● Dados armazenados em memória secundária (disco).
![Page 19: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/19.jpg)
19/223
Classificação dos Algoritmos
● Número de comparações● Número de trocas● Localização dos dados
– Ordenação interna● Todos os dados estão em memória principal (RAM).
– Ordenação externa● Memória principal não cabe todos os dados.● Dados armazenados em memória secundária (disco).
● Recursão
![Page 20: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/20.jpg)
20/223
Classificação dos Algoritmos
![Page 21: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/21.jpg)
21/223
Classificação dos Algoritmos
● Uso de memória
![Page 22: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/22.jpg)
22/223
Classificação dos Algoritmos
● Uso de memória– In place: ordena sem usar memória adicional ou
usando uma quantidade constante de memória adicional.
![Page 23: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/23.jpg)
23/223
Classificação dos Algoritmos
● Uso de memória– In place: ordena sem usar memória adicional ou
usando uma quantidade constante de memória adicional.
– Alguns métodos precisam duplicar os dados.
![Page 24: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/24.jpg)
24/223
Classificação dos Algoritmos
![Page 25: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/25.jpg)
25/223
Classificação dos Algoritmos
● Adaptabilidade
![Page 26: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/26.jpg)
26/223
Classificação dos Algoritmos
● Adaptabilidade– Um método é adaptável quando a sequência de
operações realizadas depende da entrada.
![Page 27: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/27.jpg)
27/223
Classificação dos Algoritmos
● Adaptabilidade– Um método é adaptável quando a sequência de
operações realizadas depende da entrada.– Um método que sempre realiza as mesmas
operações, independente da entrada, é não adaptável.
![Page 28: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/28.jpg)
28/223
Classificação dos Algoritmos
![Page 29: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/29.jpg)
29/223
Classificação dos Algoritmos
● Estabilidade– Método é estável se a ordem relativa dos registros
com a mesma chave não se altera após a ordenação.
![Page 30: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/30.jpg)
30/223
Classificação dos Algoritmos
● Estabilidade– Método é estável se a ordem relativa dos registros
com a mesma chave não se altera após a ordenação.
![Page 31: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/31.jpg)
31/223
Algoritmo da Bolha
![Page 32: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/32.jpg)
32/223
Algoritmo da Bolha
● Também conhecido como Bubble Sort.
![Page 33: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/33.jpg)
33/223
Algoritmo da Bolha
● Também conhecido como Bubble Sort.● É o método mais simples de ordenação.
![Page 34: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/34.jpg)
34/223
Algoritmo da Bolha
● Também conhecido como Bubble Sort.● É o método mais simples de ordenação.● Algoritmo
![Page 35: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/35.jpg)
35/223
Algoritmo da Bolha
● Também conhecido como Bubble Sort.● É o método mais simples de ordenação.● Algoritmo
– Compara elementos adjacentes.
![Page 36: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/36.jpg)
36/223
Algoritmo da Bolha
● Também conhecido como Bubble Sort.● É o método mais simples de ordenação.● Algoritmo
– Compara elementos adjacentes.– Os elementos são trocados, caso não estejam
ordenados.
![Page 37: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/37.jpg)
37/223
Algoritmo da Bolha
● Também conhecido como Bubble Sort.● É o método mais simples de ordenação.● Algoritmo
– Compara elementos adjacentes.– Os elementos são trocados, caso não estejam
ordenados.– Processo é repetido até a lista ficar ordenada.
![Page 38: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/38.jpg)
38/223
Algoritmo da Bolha
![Page 39: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/39.jpg)
39/223
Algoritmo da Bolha
● Exemplo:
![Page 40: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/40.jpg)
40/223
Algoritmo da Bolha
● Exemplo:
![Page 41: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/41.jpg)
41/223
Algoritmo da Bolha
● Exemplo:
● O algoritmo tem complexidade O(n2).
![Page 42: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/42.jpg)
42/223
Algoritmo da Bolha
![Page 43: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/43.jpg)
43/223
Algoritmo da Bolha
● Pontos positivos
![Page 44: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/44.jpg)
44/223
Algoritmo da Bolha
● Pontos positivos– Algoritmo simples.
![Page 45: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/45.jpg)
45/223
Algoritmo da Bolha
● Pontos positivos– Algoritmo simples.– Algoritmo estável.
![Page 46: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/46.jpg)
46/223
Algoritmo da Bolha
● Pontos positivos– Algoritmo simples.– Algoritmo estável.
● Pontos negativos
![Page 47: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/47.jpg)
47/223
Algoritmo da Bolha
● Pontos positivos– Algoritmo simples.– Algoritmo estável.
● Pontos negativos– Não adaptável.
![Page 48: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/48.jpg)
48/223
Algoritmo da Bolha
● Pontos positivos– Algoritmo simples.– Algoritmo estável.
● Pontos negativos– Não adaptável.– Muitas trocas de elementos durante a ordenação.
![Page 49: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/49.jpg)
49/223
Algoritmo de Seleção
![Page 50: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/50.jpg)
50/223
Algoritmo de Seleção
● Também conhecido como Selection Sort.
![Page 51: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/51.jpg)
51/223
Algoritmo de Seleção
● Também conhecido como Selection Sort.● É um algoritmo in place.
![Page 52: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/52.jpg)
52/223
Algoritmo de Seleção
● Também conhecido como Selection Sort.● É um algoritmo in place.● Algoritmo:
![Page 53: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/53.jpg)
53/223
Algoritmo de Seleção
● Também conhecido como Selection Sort.● É um algoritmo in place.● Algoritmo:
– Achar o maior (ou menor) valor da lista.
![Page 54: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/54.jpg)
54/223
Algoritmo de Seleção
● Também conhecido como Selection Sort.● É um algoritmo in place.● Algoritmo:
– Achar o maior (ou menor) valor da lista.– Trocar esse elemento na posição atual.
![Page 55: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/55.jpg)
55/223
Algoritmo de Seleção
● Também conhecido como Selection Sort.● É um algoritmo in place.● Algoritmo:
– Achar o maior (ou menor) valor da lista.– Trocar esse elemento na posição atual.– Repetir o processo até a lista ficar ordenada.
![Page 56: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/56.jpg)
56/223
Algoritmo de Seleção
![Page 57: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/57.jpg)
57/223
Algoritmo de Seleção
● Exemplo
![Page 58: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/58.jpg)
58/223
Algoritmo de Seleção
● Exemplo
![Page 59: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/59.jpg)
59/223
Algoritmo de Seleção
● Exemplo
● O algoritmo tem complexidade O(n2).
![Page 60: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/60.jpg)
60/223
Algoritmo de Seleção
![Page 61: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/61.jpg)
61/223
Algoritmo de Seleção
● Pontos positivos
![Page 62: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/62.jpg)
62/223
Algoritmo de Seleção
● Pontos positivos– Custo linear no tamanho da entrada para o número
de movimentos de elementos.
![Page 63: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/63.jpg)
63/223
Algoritmo de Seleção
● Pontos positivos– Custo linear no tamanho da entrada para o número
de movimentos de elementos.● Pontos negativos
![Page 64: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/64.jpg)
64/223
Algoritmo de Seleção
● Pontos positivos– Custo linear no tamanho da entrada para o número
de movimentos de elementos.● Pontos negativos
– Não adaptável.
![Page 65: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/65.jpg)
65/223
Algoritmo de Seleção
● Pontos positivos– Custo linear no tamanho da entrada para o número
de movimentos de elementos.● Pontos negativos
– Não adaptável.– Não estável.
![Page 66: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/66.jpg)
66/223
Algoritmo de Inserção
![Page 67: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/67.jpg)
67/223
Algoritmo de Inserção
● A cada iteração, o algoritmo remove um elemento da lista de entrada e insere esse elemento na posição correta.
![Page 68: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/68.jpg)
68/223
Algoritmo de Inserção
![Page 69: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/69.jpg)
69/223
Algoritmo de Inserção
● Exemplo
![Page 70: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/70.jpg)
70/223
Algoritmo de Inserção
● Exemplo
![Page 71: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/71.jpg)
71/223
Algoritmo de Inserção
● Exemplo
● O algoritmo tem complexidade O(n2).
![Page 72: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/72.jpg)
72/223
Algoritmo de Inserção
![Page 73: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/73.jpg)
73/223
Algoritmo de Inserção
● Características:
![Page 74: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/74.jpg)
74/223
Algoritmo de Inserção
● Características:– Simples implementação.
![Page 75: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/75.jpg)
75/223
Algoritmo de Inserção
● Características:– Simples implementação.– A ordenação é realizada in place. Requer apenas
O(1) de espaço extra de memória.
![Page 76: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/76.jpg)
76/223
Algoritmo de Inserção
● Características:– Simples implementação.– A ordenação é realizada in place. Requer apenas
O(1) de espaço extra de memória.– Estável.
![Page 77: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/77.jpg)
77/223
Algoritmo de Inserção
● Características:– Simples implementação.– A ordenação é realizada in place. Requer apenas
O(1) de espaço extra de memória.– Estável.– Na prática, é mais eficiente do que o método Bolha
e Seleção.
![Page 78: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/78.jpg)
78/223
Algoritmo de Inserção
● Características:– Simples implementação.– A ordenação é realizada in place. Requer apenas
O(1) de espaço extra de memória.– Estável.– Na prática, é mais eficiente do que o método Bolha e
Seleção.– Algoritmo usado quando a entrada está praticamente
ordenada ou quando a entrada é pequena.
![Page 79: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/79.jpg)
79/223
Algoritmo de Inserção
![Page 80: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/80.jpg)
80/223
Algoritmo de Inserção
● Pontos positivos
![Page 81: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/81.jpg)
81/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.
![Page 82: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/82.jpg)
82/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.– É o método a ser utilizado quando a lista está
quase ordenada.
![Page 83: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/83.jpg)
83/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.– É o método a ser utilizado quando a lista está
quase ordenada.– É um bom método quando se deseja adicionar
poucos elementos a uma lista ordenada (custo linear).
![Page 84: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/84.jpg)
84/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.– É o método a ser utilizado quando a lista está
quase ordenada.– É um bom método quando se deseja adicionar
poucos elementos a uma lista ordenada (custo linear).
– É estável.
![Page 85: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/85.jpg)
85/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.– É o método a ser utilizado quando a lista está quase
ordenada.– É um bom método quando se deseja adicionar poucos
elementos a uma lista ordenada (custo linear).– É estável.
● Pontos negativos
![Page 86: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/86.jpg)
86/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.– É o método a ser utilizado quando a lista está quase
ordenada.– É um bom método quando se deseja adicionar poucos
elementos a uma lista ordenada (custo linear).– É estável.
● Pontos negativos– Número de comparações tem crescimento quadrático.
![Page 87: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/87.jpg)
87/223
Algoritmo de Inserção
● Pontos positivos– Adequado para ordenar vetores pequenos.– É o método a ser utilizado quando a lista está quase
ordenada.– É um bom método quando se deseja adicionar poucos
elementos a uma lista ordenada (custo linear).– É estável.
● Pontos negativos– Número de comparações tem crescimento quadrático.– Alto custo de movimentação de elementos na lista.
![Page 88: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/88.jpg)
88/223
Mergesort
![Page 89: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/89.jpg)
89/223
Mergesort
● Estratégia de divisão e conquista
![Page 90: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/90.jpg)
90/223
Mergesort
● Estratégia de divisão e conquista● Algoritmo baseado em dois passos:
![Page 91: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/91.jpg)
91/223
Mergesort
● Estratégia de divisão e conquista● Algoritmo baseado em dois passos:
– Divide a lista de entrada em N sublistas, onde cada sublista tem 1 elemento não ordenado e N é o número de elementos da lista.
![Page 92: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/92.jpg)
92/223
Mergesort
● Estratégia de divisão e conquista● Algoritmo baseado em dois passos:
– Divide a lista de entrada em N sublistas, onde cada sublista tem 1 elemento não ordenado e N é o número de elementos da lista.
– Repetidamente junta (merge) as sublistas para ir produzindo novas sublistas ordenadas até que todos os elementos sejam agrupados (merge) em uma única lista ordenada.
![Page 93: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/93.jpg)
93/223
Mergesort
![Page 94: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/94.jpg)
94/223
Mergesort
● Exemplo
![Page 95: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/95.jpg)
95/223
Mergesort
● Exemplo
![Page 96: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/96.jpg)
96/223
Quicksort
![Page 97: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/97.jpg)
97/223
Quicksort
● É outro algoritmo baseado na estratégia de divisão e conquista.
![Page 98: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/98.jpg)
98/223
Quicksort
● É outro algoritmo baseado na estratégia de divisão e conquista.
● Apesar dele ser um pouco mais complicado, na maioria das implementações ele é mais eficiente do que o Mergesort e raramente alcança o pior caso de O(n2).
![Page 99: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/99.jpg)
99/223
Quicksort
![Page 100: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/100.jpg)
100/223
Quicksort
● Algoritmo
![Page 101: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/101.jpg)
101/223
Quicksort
● Algoritmo– Seleciona-se um elemento da lista chamado de
pivot.
![Page 102: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/102.jpg)
102/223
Quicksort
● Algoritmo– Seleciona-se um elemento da lista chamado de
pivot.– Executa-se a operação de partição
![Page 103: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/103.jpg)
103/223
Quicksort
● Algoritmo– Seleciona-se um elemento da lista chamado de
pivot.– Executa-se a operação de partição
● Os elementos menores que o pivot ficarão a sua esquerda.
![Page 104: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/104.jpg)
104/223
Quicksort
● Algoritmo– Seleciona-se um elemento da lista chamado de
pivot.– Executa-se a operação de partição
● Os elementos menores que o pivot ficarão a sua esquerda.
● Os elementos maiores que o pivot ficarão a sua direita.
![Page 105: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/105.jpg)
105/223
Quicksort
● Algoritmo– Seleciona-se um elemento da lista chamado de pivot.– Executa-se a operação de partição
● Os elementos menores que o pivot ficarão a sua esquerda.● Os elementos maiores que o pivot ficarão a sua direita.
– De modo recursivo, aplica-se os passos anteriores separadamente para cada sublista onde o último pivot é o elemento central.
![Page 106: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/106.jpg)
106/223
Quicksort
● Exemplo
![Page 107: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/107.jpg)
107/223
Quicksort
● Exemplo
![Page 108: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/108.jpg)
108/223
ShellSort
![Page 109: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/109.jpg)
109/223
ShellSort
● Proposto por Donald Shell em 1959.
![Page 110: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/110.jpg)
110/223
ShellSort
● Proposto por Donald Shell em 1959.● É uma extensão do algoritmo de ordenação por
inserção.
![Page 111: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/111.jpg)
111/223
ShellSort
● Proposto por Donald Shell em 1959.● É uma extensão do algoritmo de ordenação por
inserção.● Ordenação por inserção só troca elementos
adjacentes para determinar o ponto de inserção.
![Page 112: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/112.jpg)
112/223
ShellSort
● Proposto por Donald Shell em 1959.● É uma extensão do algoritmo de ordenação por
inserção.● Ordenação por inserção só troca elementos
adjacentes para determinar o ponto de inserção.
● O método ShellSort permite fazer trocas de elementos distantes.
![Page 113: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/113.jpg)
113/223
ShellSort
![Page 114: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/114.jpg)
114/223
ShellSort
● Algoritmo
![Page 115: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/115.jpg)
115/223
ShellSort
● Algoritmo– Os conjuntos de elementos separados de h
posições são ordenados.
![Page 116: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/116.jpg)
116/223
ShellSort
● Algoritmo– Os conjuntos de elementos separados de h
posições são ordenados.● O elemento na posição x é comparado (e trocado) com o
elemento da posição x-h.
![Page 117: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/117.jpg)
117/223
ShellSort
● Algoritmo– Os conjuntos de elementos separados de h
posições são ordenados.● O elemento na posição x é comparado (e trocado) com o
elemento da posição x-h.● A lista resultante é composta de h segmentos ordenados
e entrelaçados.
![Page 118: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/118.jpg)
118/223
ShellSort
● Algoritmo– Os conjuntos de elementos separados de h
posições são ordenados.● O elemento na posição x é comparado (e trocado) com o
elemento da posição x-h.● A lista resultante é composta de h segmentos ordenados
e entrelaçados.
– A lista é dita estar h-ordenada.
![Page 119: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/119.jpg)
119/223
ShellSort
● Algoritmo– Os conjuntos de elementos separados de h posições
são ordenados.● O elemento na posição x é comparado (e trocado) com o
elemento da posição x-h.● A lista resultante é composta de h segmentos ordenados e
entrelaçados.
– A lista é dita estar h-ordenada.– Quando h = 1 o algoritmo é equivalente ao método
de inserção.
![Page 120: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/120.jpg)
120/223
ShellSort
● Exemplo:
a1 a2 a3 a4 a5 a6 a7 a8 a9 a0 a11 a12
Entrada 62 83 18 53 07 17 95 86 47 69 25 28
H = 5 17 28 18 47 07 25 83 86 53 69 62 95
H = 3 17 07 18 47 28 25 69 62 53 83 86 95
H = 1 07 17 18 25 28 47 53 62 69 83 86 95
![Page 121: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/121.jpg)
121/223
ShellSort
![Page 122: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/122.jpg)
122/223
ShellSort
● Escolha da distância de salto (h)
![Page 123: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/123.jpg)
123/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta (h = 1 é a ordenação por inserção).
![Page 124: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/124.jpg)
124/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta (h = 1 é a ordenação por inserção).
– Forte impacto no desempenho do algoritmo.
![Page 125: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/125.jpg)
125/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta (h = 1 é a ordenação por inserção).
– Forte impacto no desempenho do algoritmo.– Sequência para h:
![Page 126: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/126.jpg)
126/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta (h = 1 é a ordenação por inserção).
– Forte impacto no desempenho do algoritmo.– Sequência para h:
● h(s) = 1, para s = 1
![Page 127: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/127.jpg)
127/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta (h = 1 é a ordenação por inserção).
– Forte impacto no desempenho do algoritmo.– Sequência para h:
● h(s) = 1, para s = 1● h(s) = 3h(s-1) + 1, para s > 1
![Page 128: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/128.jpg)
128/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante a
ordenação correta (h = 1 é a ordenação por inserção).– Forte impacto no desempenho do algoritmo.– Sequência para h:
● h(s) = 1, para s = 1● h(s) = 3h(s-1) + 1, para s > 1● A sequência corresponde a 1, 4, 13, 40, 121, 364, 1.093…
![Page 129: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/129.jpg)
129/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante a
ordenação correta (h = 1 é a ordenação por inserção).– Forte impacto no desempenho do algoritmo.– Sequência para h:
● h(s) = 1, para s = 1● h(s) = 3h(s-1) + 1, para s > 1● A sequência corresponde a 1, 4, 13, 40, 121, 364, 1.093…● Knuth mostrou experimentalmente que essa sequência é difícil
de ser batida por mais de 20% de eficiência.
![Page 130: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/130.jpg)
130/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante a
ordenação correta (h = 1 é a ordenação por inserção).– Forte impacto no desempenho do algoritmo.– Sequência para h:
● h(s) = 1, para s = 1● h(s) = 3h(s-1) + 1, para s > 1● A sequência corresponde a 1, 4, 13, 40, 121, 364, 1.093…● Knuth mostrou experimentalmente que essa sequência é difícil de
ser batida por mais de 20% de eficiência.● Outras escolhas são possíveis.
![Page 131: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/131.jpg)
131/223
ShellSort
![Page 132: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/132.jpg)
132/223
ShellSort
● Escolha da distância de salto (h)
![Page 133: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/133.jpg)
133/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta.
![Page 134: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/134.jpg)
134/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta.● h = 1 é ordenação por inserção.
![Page 135: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/135.jpg)
135/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta.● h = 1 é ordenação por inserção.
– Forte impacto no desempenho do algoritmo.
![Page 136: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/136.jpg)
136/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta.● h = 1 é ordenação por inserção.
– Forte impacto no desempenho do algoritmo.– Exemplo de sequência ruim: 1, 2, 4, 8, 16…
![Page 137: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/137.jpg)
137/223
ShellSort
● Escolha da distância de salto (h)– Qualquer sequência terminando com h = 1 garante
a ordenação correta.● h = 1 é ordenação por inserção.
– Forte impacto no desempenho do algoritmo.– Exemplo de sequência ruim: 1, 2, 4, 8, 16…
● Não compara elementos em posições pares com elementos em posições ímpares até a última iteração.
![Page 138: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/138.jpg)
138/223
ShellSort
![Page 139: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/139.jpg)
139/223
ShellSort
● A complexidade do algoritmo ainda não é conhecida.
![Page 140: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/140.jpg)
140/223
ShellSort
● A complexidade do algoritmo ainda não é conhecida.
● Ninguém ainda foi capaz de encontrar uma fórmula fechada para sua função de complexidade.
![Page 141: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/141.jpg)
141/223
ShellSort
● A complexidade do algoritmo ainda não é conhecida.
● Ninguém ainda foi capaz de encontrar uma fórmula fechada para sua função de complexidade.
● A sua análise ainda contém alguns problemas matemáticos difíceis. Exemplo: escolher a sequência de incrementos.
![Page 142: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/142.jpg)
142/223
ShellSort
● A complexidade do algoritmo ainda não é conhecida.
● Ninguém ainda foi capaz de encontrar uma fórmula fechada para sua função de complexidade.
● A sua análise ainda contém alguns problemas matemáticos difíceis. Exemplo: escolher a sequência de incrementos.
● O que se sabe é que cada incremento não deve ser múltiplo do anterior.
![Page 143: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/143.jpg)
143/223
ShellSort
![Page 144: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/144.jpg)
144/223
ShellSort
● Conjecturas referentes ao número de comparações para a sequência de Knuth:
![Page 145: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/145.jpg)
145/223
ShellSort
● Conjecturas referentes ao número de comparações para a sequência de Knuth:– Conjectura 1: C(n) = O(n1,25)
![Page 146: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/146.jpg)
146/223
ShellSort
● Conjecturas referentes ao número de comparações para a sequência de Knuth:– Conjectura 1: C(n) = O(n1,25)– Conjectura 2: C(n) = O(n (ln n)2)
![Page 147: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/147.jpg)
147/223
ShellSort
![Page 148: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/148.jpg)
148/223
ShellSort
● Pontos positivos
![Page 149: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/149.jpg)
149/223
ShellSort
● Pontos positivos– É uma boa opção para arquivos de tamanhos
moderados.
![Page 150: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/150.jpg)
150/223
ShellSort
● Pontos positivos– É uma boa opção para arquivos de tamanhos
moderados.– Implementação simples e requer uma quantidade
de código pequena.
![Page 151: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/151.jpg)
151/223
ShellSort
● Pontos positivos– É uma boa opção para arquivos de tamanhos
moderados.– Implementação simples e requer uma quantidade
de código pequena.● Pontos negativos
![Page 152: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/152.jpg)
152/223
ShellSort
● Pontos positivos– É uma boa opção para arquivos de tamanhos
moderados.– Implementação simples e requer uma quantidade
de código pequena.● Pontos negativos
– O tempo de execução do algoritmo é sensível à ordem inicial do arquivo.
![Page 153: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/153.jpg)
153/223
ShellSort
● Pontos positivos– É uma boa opção para arquivos de tamanhos
moderados.– Implementação simples e requer uma quantidade de
código pequena.● Pontos negativos
– O tempo de execução do algoritmo é sensível à ordem inicial do arquivo.
– O método não é estável.
![Page 154: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/154.jpg)
154/223
Counting Sort
![Page 155: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/155.jpg)
155/223
Counting Sort
● É um algoritmo de ordenação que não necessita da operação de comparação entre os elementos.
![Page 156: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/156.jpg)
156/223
Counting Sort
● É um algoritmo de ordenação que não necessita da operação de comparação entre os elementos.
● Por isso, é considerado como algoritmo de ordenação inteira (integer sorting algorithm).
![Page 157: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/157.jpg)
157/223
Counting Sort
● É um algoritmo de ordenação que não necessita da operação de comparação entre os elementos.
● Por isso, é considerado como algoritmo de ordenação inteira (integer sorting algorithm).
● Pode ser usado para ordenar uma lista de elementos cujos valores estão num intervalo pré-definido [0,k).
![Page 158: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/158.jpg)
158/223
Counting Sort
● É um algoritmo de ordenação que não necessita da operação de comparação entre os elementos.
● Por isso, é considerado como algoritmo de ordenação inteira (integer sorting algorithm).
● Pode ser usado para ordenar uma lista de elementos cujos valores estão num intervalo pré-definido [0,k).
● É um algoritmo de ordenação estável.
![Page 159: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/159.jpg)
159/223
Counting Sort
● Exemplo
![Page 160: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/160.jpg)
160/223
Counting Sort
● Exemplo
![Page 161: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/161.jpg)
161/223
Counting Sort
![Page 162: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/162.jpg)
162/223
Counting Sort
● Algoritmo
![Page 163: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/163.jpg)
163/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.
![Page 164: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/164.jpg)
164/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.– Passos:
![Page 165: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/165.jpg)
165/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.– Passos:
● Inicializa-se uma lista Aux[] com 0s, onde o tamanho dessa lista deve ser >= max (A[]).
![Page 166: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/166.jpg)
166/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.– Passos:
● Inicializa-se uma lista Aux[] com 0s, onde o tamanho dessa lista deve ser >= max (A[]).
● Percorra A e armazene a quantidade de ocorrências de cada elemento de A em uma posição apropriada de Aux.
![Page 167: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/167.jpg)
167/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.– Passos:
● Inicializa-se uma lista Aux[] com 0s, onde o tamanho dessa lista deve ser >= max (A[]).
● Percorra A e armazene a quantidade de ocorrências de cada elemento de A em uma posição apropriada de Aux.
● Inicializa-se sortedA[] vazio.
![Page 168: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/168.jpg)
168/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.– Passos:
● Inicializa-se uma lista Aux[] com 0s, onde o tamanho dessa lista deve ser >= max (A[]).
● Percorra A e armazene a quantidade de ocorrências de cada elemento de A em uma posição apropriada de Aux.
● Inicializa-se sortedA[] vazio.● Percorra a lista Aux[ ] e copie i em sortedA para Aux[i] número de vezes, onde 0 <= i <= max(A[]).
![Page 169: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/169.jpg)
169/223
Counting Sort
● Algoritmo– Ordenar uma lista A de tamanho N.– Passos:
● Inicializa-se uma lista Aux[] com 0s, onde o tamanho dessa lista deve ser >= max (A[]).
● Percorra A e armazene a quantidade de ocorrências de cada elemento de A em uma posição apropriada de Aux.
● Inicializa-se sortedA[] vazio.● Percorra a lista Aux[ ] e copie i em sortedA para Aux[i] número de
vezes, onde 0 <= i <= max(A[]).
– A lista A[ ] somente pode ser ordenada por esse algoritmo se o valor máximo de A é menor do que o tamanho máximo de Aux[].
![Page 170: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/170.jpg)
170/223
Counting Sort
![Page 171: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/171.jpg)
171/223
Counting Sort
● Complexidade
![Page 172: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/172.jpg)
172/223
Counting Sort
● Complexidade– A lista A[] é percorrida no tempo de O(N).
![Page 173: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/173.jpg)
173/223
Counting Sort
● Complexidade– A lista A[] é percorrida no tempo de O(N).– A lista Aux[] é percorrida no tempo de O(k).
![Page 174: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/174.jpg)
174/223
Counting Sort
● Complexidade– A lista A[] é percorrida no tempo de O(N).– A lista Aux[] é percorrida no tempo de O(k).– Portanto, o tempo médio é O(N + k).
![Page 175: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/175.jpg)
175/223
Bucket Sort
![Page 176: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/176.jpg)
176/223
Bucket Sort
● Também conhecido como bin sort.
![Page 177: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/177.jpg)
177/223
Bucket Sort
● Também conhecido como bin sort.● Supõe que os elementos da entrada estão
distribuídos.
![Page 178: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/178.jpg)
178/223
Bucket Sort
● Também conhecido como bin sort.● Supõe que os elementos da entrada estão
distribuídos.● A ideia é dividir os elementos em segmentos de
mesmo tamanho (buckets).
![Page 179: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/179.jpg)
179/223
Bucket Sort
● Também conhecido como bin sort.● Supõe que os elementos da entrada estão
distribuídos.● A ideia é dividir os elementos em segmentos de
mesmo tamanho (buckets).● Espera-se que o número de elementos seja o
mesmo em todos os buckets (segmentos).
![Page 180: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/180.jpg)
180/223
Bucket Sort
● Também conhecido como bin sort.● Supõe que os elementos da entrada estão distribuídos.● A ideia é dividir os elementos em segmentos de
mesmo tamanho (buckets).● Espera-se que o número de elementos seja o mesmo
em todos os buckets (segmentos).● Em seguida, os elementos são ordenados por um
método qualquer.
![Page 181: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/181.jpg)
181/223
Bucket Sort
● Também conhecido como bin sort.● Supõe que os elementos da entrada estão distribuídos.● A ideia é dividir os elementos em segmentos de mesmo
tamanho (buckets).● Espera-se que o número de elementos seja o mesmo
em todos os buckets (segmentos).● Em seguida, os elementos são ordenados por um
método qualquer.● Depois os elementos são concatenados.
![Page 182: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/182.jpg)
182/223
Bucket Sort
![Page 183: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/183.jpg)
183/223
Bucket Sort
● Exemplo:
![Page 184: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/184.jpg)
184/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
![Page 185: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/185.jpg)
185/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
![Page 186: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/186.jpg)
186/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
![Page 187: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/187.jpg)
187/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
12
![Page 188: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/188.jpg)
188/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 12
![Page 189: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/189.jpg)
189/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 12 23
![Page 190: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/190.jpg)
190/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 12 23
![Page 191: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/191.jpg)
191/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 23
![Page 192: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/192.jpg)
192/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 23 28
![Page 193: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/193.jpg)
193/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 23 28
![Page 194: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/194.jpg)
194/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 23 28 26
![Page 195: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/195.jpg)
195/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
![Page 196: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/196.jpg)
196/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
![Page 197: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/197.jpg)
197/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
![Page 198: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/198.jpg)
198/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
5 7 8
![Page 199: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/199.jpg)
199/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
5 7 8 11 12 15
![Page 200: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/200.jpg)
200/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
5 7 8 11 12 15 23 26 28
![Page 201: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/201.jpg)
201/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
7 5 8 12 11 15 23 28 26
5 7 8 11 12 15 23 26 28
![Page 202: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/202.jpg)
202/223
Bucket Sort
● Exemplo:
12 7 23 5 8 28 11 26 15
5 7 8 11 12 15 23 26 28
7 5 8 12 11 15 23 28 26
5 7 8 11 12 15 23 26 28
![Page 203: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/203.jpg)
203/223
Bucket Sort
![Page 204: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/204.jpg)
204/223
Bucket Sort
● Algoritmo
![Page 205: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/205.jpg)
205/223
Bucket Sort
● Algoritmo– Inicialize um array de “baldes” inicialmente vazios.
![Page 206: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/206.jpg)
206/223
Bucket Sort
● Algoritmo– Inicialize um array de “baldes” inicialmente vazios.– Distribua os elementos colocando-os cada um dos
“baldes”.
![Page 207: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/207.jpg)
207/223
Bucket Sort
● Algoritmo– Inicialize um array de “baldes” inicialmente vazios.– Distribua os elementos colocando-os cada um dos
“baldes”.– Ordene cada balde não-vazio.
![Page 208: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/208.jpg)
208/223
Bucket Sort
● Algoritmo– Inicialize um array de “baldes” inicialmente vazios.– Distribua os elementos colocando-os cada um dos
“baldes”.– Ordene cada balde não-vazio.– Coloque os elementos dos baldes que não estão
vazios no array original.
![Page 209: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/209.jpg)
209/223
Bucket Sort
![Page 210: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/210.jpg)
210/223
Bucket Sort
● Análise
![Page 211: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/211.jpg)
211/223
Bucket Sort
● Análise– O algoritmo assume que a entrada de dados tem
uma distribuição uniforme.
![Page 212: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/212.jpg)
212/223
Bucket Sort
● Análise– O algoritmo assume que a entrada de dados tem
uma distribuição uniforme.– A complexidade computacional tem relação com o
número de “baldes”.
![Page 213: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/213.jpg)
213/223
Bucket Sort
● Análise– O algoritmo assume que a entrada de dados tem
uma distribuição uniforme.– A complexidade computacional tem relação com o
número de “baldes”.– O método pode ser eficiente dependendo da
distribuição dos elementos e da quantidade de buckets.
![Page 214: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/214.jpg)
214/223
Bucket Sort
● Análise– O algoritmo assume que a entrada de dados tem uma
distribuição uniforme.– A complexidade computacional tem relação com o
número de “baldes”.– O método pode ser eficiente dependendo da
distribuição dos elementos e da quantidade de buckets.– O algoritmo é O(n+k) para o caso médio e O(n2) para o
pior caso.
![Page 215: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/215.jpg)
215/223
Resumo Comparativo
https://medium.com/@george.seif94/a-tour-of-the-top-5-sorting-algorithms-with-python-code-43ea9aa02889
![Page 216: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/216.jpg)
216/223
Resumo Comparativo
![Page 217: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/217.jpg)
217/223
Exercícios
● Considere o código abaixo e responda ao que se pede:– A função MetodoX implementa qual algoritmo de
ordenação? – Qual é a finalidade da Linha 6 do programa?
![Page 218: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/218.jpg)
218/223
Exercícios
● Considere os seguintes métodos de ordenação: bolha, seleção e inserção. Qual deles executa o menor número de comparações para uma lista de entrada contendo valores idênticos?
● Mostre um exemplo que demonstre que o ShellSort é instável para a sequência de h=1,2.
● Um amigo lhe diz que é capaz de ordenar qualquer sequência de 6 números com no máximo 8 comparações. O seu amigo está falando a verdade? Justifique a sua resposta.
![Page 219: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/219.jpg)
219/223
Exercícios
● Quantas trocas são realizadas quando executamos o algoritmo de Seleção para ordenar uma lista com N elementos?
● Considere a seguinte afirmação: “O algoritmo counting sort é eficiente se a variação da entrada de dados não é significativamente maior do que o número de objetos que serão ordenados”. A afirmação é verdadeira? Se for, justifique a afirmação e dê um exemplo que confirme a justificativa. Se não for verdadeira, justifique o motivo e dê um exemplo que corrobore com a sua justificativa.
![Page 220: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/220.jpg)
220/223
Exercícios
![Page 221: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/221.jpg)
221/223
Exercícios
![Page 222: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/222.jpg)
222/223
Exercícios
![Page 223: Algoritmos de Ordenação - Tiago de Melotiagodemelo.info/wp-content/uploads/2019/08/algoritmos-ordenaca… · Algoritmos de ordenação organizam os elementos de uma lista em uma](https://reader030.vdocuments.pub/reader030/viewer/2022011913/5fb571b239fc7b30593551b6/html5/thumbnails/223.jpg)
223/223
Referências
● Visualização de algoritmos de ordenação– https://www.toptal.com/developers/sorting-algorithms