domingo, 20 de dezembro de 2009

Problema 10.6

O ordenamento por selecção tem uma lógica muito simples: admitindo que uma parte do vector já está definitivamente ordenada concentra-mo-nos na outra parte. Escolhemos o maior elemento (ou o menor se for por ordem decrescente) da parte ainda desordenada e coloca-mo-lo na sua posição definitiva. este processo é repetido tantas vezes quantas a dimensão do vector menos um.

def selec_dir(seq):
"""Ordenamento por selecção directa"""
copia=seq[:]
for cont in range(len(seq)-1,0,-1):
indice=copia.index(max(copia[:cont+1]))
copia[cont],copia[indice]=copia[indice],copia[cont]
return copia

Nesta implementação o ordenamento é por ordem crescente. Veja-me como usamos a operação de range!

Sem comentários:

Enviar um comentário