domingo, 20 de dezembro de 2009

Problema 10.5

Porque analisamos o vector em toda a sua dimensão se a partir de um certo índice não houve mais trocas? Não precisamos, pois não haver trocas significa: vector ordenado daí para a frente! O algoritmo apresetnado resolve essa questão.

def bubblesort_3(seq):
"""Ordenamento por bolhas.
Apenas ordena o subvector esquerdo onde houve trocas!
"""
copia = seq[:]
indice= len(seq)-1
while indice > 0:
cont = indice - 1
indice = 0
for i in range(cont+1):
if copia[i] > copia[i+1]:
copia[i],copia[i+1] = copia[i+1],copia[i]
indice=i
return copia

Sem comentários:

Enviar um comentário