1.
def
xpto(lista):
2.
# ordena lista de modo decrescente
3.
for
i
in
range(len(lista)):
4.
m
=
max(lista[i:])
5.
ind
=
lista.index(m)
6.
lista[i],lista[ind]
=
lista[ind], lista[i]
7.
return
lista
O programa recebe como entrada uma lista de números e devolve essa mesma lista ordenada de modo decrescente. Funciona percorrendo a lista da esquerda para a direita e na etapa i determinar a posição do maior elemento da sub-lista desde a posição i até ao final. De seguida esse elemento troca a sua posição com o elemento na posição i. Existe uma situação em que este algoritmo não funciona, quando existem elementos repetidos. Para corrigir, basta usar a instrução
1.
ind
=
lista.index(m,i)
1.
ind
=
lista.index(m)