Maison > Java > javaDidacticiel > Comment pouvons-nous fusionner efficacement deux tableaux triés ?

Comment pouvons-nous fusionner efficacement deux tableaux triés ?

Mary-Kate Olsen
Libérer: 2024-11-30 12:27:11
original
1032 Les gens l'ont consulté

How Can We Efficiently Merge Two Sorted Arrays?

Fusionner efficacement des tableaux triés : une méthode améliorée

Pour fusionner deux tableaux triés en un seul tableau trié, plusieurs approches de programmation peuvent être utilisées. Cependant, l'une des techniques les plus efficaces et fréquemment recommandées est la suivante :

Cet algorithme parcourt simultanément les deux tableaux, en comparant les éléments de chaque index actuel et en ajoutant le plus petit élément au tableau de sortie. Ce processus se poursuit jusqu'à ce que l'une des baies soit épuisée. Tous les éléments restants dans l'autre tableau sont ensuite ajoutés.

Voici un exemple d'implémentation optimisée de cet algorithme en Java :

public static int[] merge(int[] a, int[] b) {

    int[] answer = new int[a.length + b.length];
    int i = 0, j = 0, k = 0;

    while (i < a.length && j < b.length)
        answer[k++] = a[i] < b[j] ? a[i++] : b[j++];

    while (i < a.length)
        answer[k++] = a[i++];

    while (j < b.length)
        answer[k++] = b[j++];

    return answer;
}
Copier après la connexion

Cette approche a une complexité temporelle de O(n m ), où n et m représentent respectivement les longueurs des tableaux a et b. Cette version améliorée élimine les contrôles inutiles d'épuisement et utilise une construction de boucle while compacte pour une fusion efficace.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal