 Écrire un pseudocode pour un algorithme Merge Sort.
MergeSort(A, startIndex, endIndex):\n // S'il n'y a qu'un seul élément dans le tableau, return\n if startIndex == endIndex:\n return\n\n middleIndex = (startIndex + endIndex) / 2\n \n // Trier la moitié gauche du tableau\n MergeSort(A, startIndex, middleIndex)\n\n // Trier la moitié droite du tableau\n MergeSort(A, middleIndex + 1, endIndex)\n\n // Fusionne les deux tableaux triés\n Merge(A, startIndex, endIndex)\n\nMerge(A, startIndex, endIndex):\n middleIndex = (startIndex + endIndex) / 2\n leftIndex = startIndex\n rightIndex = middleIndex + 1\n\n // Tableau temporaire pour contenir le tableau trié\n tempArray[]\n\n // Itérer à travers les deux moitiés du tableau\n for i in range(startIndex, endIndex+1):\n / / Si la moitié gauche est itérée, ajouter à partir de la moitié droite\n if leftIndex > middleIndex:\n tempArray[i] = A[rightIndex]\n rightIndex++\n\n // Si la moitié droite est itérée, ajouter à partir de la moitié gauche \n else if rightIndex > endIndex :\n tempArray[i] = A[leftIndex]\n leftIndex++\n\n // Comparer l'élément actuel et ajouter t l'élément le plus petit\n sinon si A[leftIndex] < A[rightIndex] :\n tempArray[i] = A[leftIndex]\n leftIndex++\n else :\n tempArray[i] = A[rightIndex]\n rightIndex++\ n\n // Copiez le tempArray dans A\n pour i dans la plage (startIndex, endIndex+1):\n A[i] = tempArray[i]