Questions / réponses

merge_sort

merge_sort

yazan Imane Abed -
Yanıt sayısı: 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

Imane Abed yanıt olarak

Re: merge_sort

yazan Marc Zeitoun -
Marc Zeitoun yanıt olarak

Re: merge_sort

yazan 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


Imane Abed yanıt olarak

Re: merge_sort

yazan 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.



Simon Archipoff yanıt olarak

Re: merge_sort

yazan 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

Imane Abed yanıt olarak

Re: merge_sort

yazan 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.