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