L'algorithme de tri par fusion marche uniquement sur les listes. La raison de cela est que sur les tableaux, il nécessite l'utilisation de mémoire supplémentaire, alors qu'avec des listes, cette mémoire est déjà disponible sous la forme des pointeurs de chaînage de la liste.
L'algorithme est particulièrement facile à expliquer. On commence par couper la liste à trier en deux parties de taille égale (à un élément près si elle contient un nombre impaire d'éléments). Puis on trie récursivement les deux parties. Finalement les deux sous listes triées sont fusionnées de la manière suivante : collectionner successivement le plus petit des premiers éléments des deux listes (ou si l'une des listes est vide, alors le premier élément de l'autre) jusqu'à ce que les deux sous listes soient vides, et renvoyer la liste des éléments collectionnés.
L'algorithme de tri par fusion est très efficace. Sa complexité asymptotique au pire est de O(n log n), due au faut que la liste est divisée exactement en deux parties à chaque appel récursif. Cet algorithme n'a donc pas le problème de l'algorithme de tri rapide où les deux parties à trier récursivement peuvent être déséquilibrées en taille, ce qui augmente le nombre d'appels récursifs. Par contre, le problème de l'algorithme de tri par fusion est qu'il ne marche pas sur les tableaux ce qui nécessite plus de mémoire.