Questions / réponses

merge_sort

merge_sort

Imane Abed
Vastuste arv 5

Bonjour, j'ai crée une fonction cut qui coupe une liste en deux liste de même longueur à 1 près, elle renvoie ([_],[__]), mais j'aimerai avoir [_] [__]


Merci 

IA

Vastuses Imane Abed

Re: merge_sort

Marc Zeitoun

Que signifie [_] [__] ?


Vastuses Marc Zeitoun

Re: merge_sort

Imane Abed

Pardon, je reformule; 

La fonction cut que j'ai crée renvoie ( liste1 , liste2 )   et je voudrai qu'elle renvoie   liste1  liste2

Ce qui m'embete ce sont les parentheses et la virgule


Merci 

IA


Vastuses Imane Abed

Re: merge_sort

Simon Archipoff

Ce n'est pas possible, une fonction ne peut retourner qu'une seule valeur… Et donc, si vous avez une fonction qui calcule deux choses, il faut en retourner la paire. "liste1 liste2" c'est la fonction liste1 appliquée au paramètre liste2, ce n'est pas ce que vous voulez.



Vastuses Simon Archipoff

Re: merge_sort

Imane Abed

Merci, ma fonction marche et j'ai 100/100 au test !

Cependant, l'évaluation continue de tourner, j'en suis a 64seg, dois-je m'en inquiéter ?


IA

Vastuses Imane Abed

Re: merge_sort

Marc Zeitoun

Le test a été passé par chance, parce que les listes générées aléatoirement ont été suffisamment courtes. La fonction telle qu'elle est écrite trie, mais n'a pas la complexité O( n.log n ) correcte du tri fusion. Si nous relançons les évaluations, la fonction risque d'échouer.

Le problème est la fonction merge qui n'est pas efficace, car elle n'exploite pas le fait que les listes à fusionner sont triées. Cf. réponse à une question similaire de Benjamin Nolent il y a quelques jours.