J'ai implémenté ce que je crois être un algorithme de tri de fusion en python. Je n'ai jamais programmé en Python auparavant, j'ai donc utilisé plusieurs ressources avec des commandes qui me semblaient étrangères, pour mieux comprendre.fusionner trier l'implémentation pour trier par longueur de chaîne - python
Cependant, je n'ai jamais implémenté le tri par fusion en premier lieu, donc je ne suis pas sûr si je l'ai même implémenté correctement. Toute orientation, conseils ou corrections seraient grandement appréciés.
Voici ma méthode de fusion:
def merge(left, right):
result = []
i, j = 0, 0
while(i < len(left) and j< len(right)):
if(len(left[i]) <= len(right[j])):
print(i)
result.append(left[i])
i=i+1
else:
result.append(right[j])
j=j+1
result += left[i:]
result += right[j:]
return result
quant à lui, voici ma méthode mergesort:
def mergesort(list):
if len(list) < 2:
return list
else:
middle = len(list)/2
left = mergesort(list[:middle])
right = mergesort(list[middle:])
return merge(left, right)
Merci pour toute aide possible! :)
merci pour cela! Je ne sais pas quels mots sont des mots-clés pour la langue pour le moment. Je ne suis pas sûr de savoir quel exemple serait le meilleur pour apprendre la langue, alors je vais juste avec. merci pour vos conseils! – Chris
Cependant, j'ai un problème avec la méthode. il semble simplement retourner la liste exactement comment elle est passée. J'appelle simplement mergesort (originalArray) pour le trier. Cela semble raisonnable, correct? – Chris
Mon mauvais, je n'appelais pas cela correctement. La liste – Chris