2010-06-26 15 views

Répondre

0

Soit fusionner deux à la fois et fusionner le résultat avec le troisième ou modifier la logique de fusion pour prendre l'élément min de toutes les trois listes.

0

Divisez récursivement l'ensemble de tableaux en deux ensembles de tableaux qui doivent être fusionnés. Lorsque l'ensemble ne contient qu'un seul tableau, retournez-le. Fusionner la liste résultante de chaque appel en utilisant votre tri de fusion standard.

array merge(list_of_arrays) 
{ 
    if (sizeof(list_of_arrays) == 1) 
     return list 
    else 
     return mergesort(merge(first_half(list_of_arrays)), merge(second_half(list_of_arrays))) 
} 
+0

ce qui se passera à la mémoire temporaire? – user355002

+0

@matin - je ne sais pas ce que vous voulez dire. La seule mémoire supplémentaire appréciable est dans le mergesort standard, sinon vous êtes en train de décomposer les tableaux avec lesquels vous travaillez pour fusionner. – tvanfosson