Aula 18a - 07/nov/23 - Ordenação por seleção
O algoritmo de ordenação por seleção não é muito eficiente, mas vamos ver como fica sua implementação.
Antes, veja o vídeo .
# lista é a sequência a ser ordenada (crescentemente(:
# ex: lista = [15, 45, 5 12, 25, 3, 17, 20, 34, 9]
n = len(lista) # comprimento da lista
for i in range(0, n-1): # para i variando de 0 a n-2
ind_menor = i # supomos que o elemento da posicao i é o menor
#-------verifica a partir da posicao i+1 em diante há um elemento menor ----------
for j in range(i+1, n):
if lista[j] < lista[ind_menor]:
ind_menor = j ### ind_menor indica a posição da lista onde
### esta' um menor elemento (até o momento)
### Só quando o laço do "for j" terminar, saberemos onde está um
### menor elemento da lista a partir da posicao i+1.
if ind_menor != i:
#### permuta de lugar os elementos das posições i e ind_menor
lista[i], lista[ind_menor] = lista[ind_menor], lista[i]
# neste ponto, lista[0 ... i] está em ordem crescente
print("i = %2d -- lista = %s" %(i, lista)) # apenas para teste
#---------------------------------------------------------------
Para o conteúdo sobre ordenação veja na aula interativa veja em: