Você está na página 1de 23

Ordenação de Listas

Profa. Elloá B. Guedes


www.elloaguedes.com
Escola Superior de Tecnologia, Universidade do Estado do Amazonas
Numa lista de exercícios anterior...

2
Ordenação
•Entrada: um vetor de n números [a1, a2, a3, ..., an]
•Saída: uma versão ordenada do vetor de entrada [a1’, a2’,...,an’] com a1’ <= a2’
<= ... <= an’

•Exemplos:
•Entrada: [ 5, 8, 0, 1, 3, 6 ]
•Saída: [0, 1, 3, 5, 6, 8]

•Entrada: [ 2, 2, 1, 0, 100, -1]


•Saída: [ -1, 0, 1, 2, 2, 100]

3
Em Python

4
Em Python

5
Algoritmos de ordenação
•Existem diversos algoritmos de ordenação na literatura!
• Bubble Sort
• Insertion Sort
• Quick Sort
• Merge Sort
• Selection Sort
• Radix Sort
• Bucket Sort
• Dentre outros

6
Bubble Sort ou Método de Bolhas
•Descrito no “The Art of Computer Programming”
• Publicado em 1962
• Donald E. Knuth

•Baseado na comparação e na troca de elementos vizinhos

•A cada iteração o maior elemento é


levado para o final do vetor

7
Bubble Sort
•Coelhos
• Números grandes no começo do vetor

•Tartarugas
• Números pequenos no fim do vetor

8
Bubble Sort – O que você precisa saber
• Trocar duas variáveis

•A cada iteração o maior valor é levado para o final


• Primeira iteração: o maior de todos vai para a última posição
• Segunda iteração: o segundo maior vai para a penúltima posição
• Assim por diante

•Quando não houver trocas a serem efetuadas,


a ordenação deve parar!

9
10
Variável fim:
Marca o tamanho
do vetor

11
Variável trocou:
Indica se uma
iteração teve trocas

12
Variável continuar:
Se uma iteração não
teve trocas, o
algoritmo não
precisa continuar

13
Indica que é
necessário trocá-las

14
Procedimento de
troca

15
Marca a posição no
vetor que estamos
começando a olhar

16
Bubble Sort

17
Bubble Sort com AlgoRythmics

18
Exercícios
•Faça um algoritmo que leia um vetor V[10] e um vetor X[10]. A seguir, crie
um vetor Y[20] que conterá os valores dos vetores V e X em ordem
crescente

19
Exercícios
•Construa uma função em Python que dado um vetor, verifique se o
mesmo está ordenado de maneira crescente, retornando True em caso
afirmativo, e False em caso contrário

20
Exercícios
•Faça uma função em Python que receba uma lista e que retorne uma
nova lista, que contém os mesmos elementos da lista original, mas
ordenados de maneira decrescente.

•Não vale ordenar a lista de maneira crescente e, em seguida, invertê-la

21
Exercícios

22
Exercícios

23

Você também pode gostar