J'ai m arrays, chaque tableau est de longueur n. Chaque tableau est trié. Je veux créer un seul tableau de longueur m * n, contenant toutes les valeurs des tableaux précédents (y compris les valeurs répétées), triés. Je dois fusionner ces tableaux ..Fusion de tableaux triés, quelle est la complexité temporelle optimale?
Je pense que la complexité de temps optimal est m * n * log (m)
Voici le schéma de l'algorithme ..
je crée un tableau de support H lenth m, contenant toutes les valeurs du premier élément de chaque tableau. Puis, je trier cette matrice (m log m) et déplacer la valeur min vers la matrice de sortie. Je remplace ensuite la valeur déplacée par la suivante, à partir de la matrice qui a été prise. En fait, je ne le remplace pas, mais je l'insère dans la bonne position (triée). Cela prend un log m je pense.
Et je le répète pour tous les m * n valeurs ... donc m * n * log m
Ma question .. pouvez-vous penser à un algorithme plus efficace? Si mnlogm est réellement optimal, pouvez-vous au moins penser à un algorithme plus simple et plus élégant?
Comment l'insertion d'un élément dans un tableau trié prendrait-elle un temps logarithmique? – codaddict