L'exemple de cet article indique la fusion et le tri du résumé de l'algorithme de tri Java. Partagez-le pour tout le monde pour votre référence. L'analyse spécifique est la suivante:
L'opération de fusion (Merge), également connue sous le nom de l'algorithme de fusion, fait référence à la fusion de deux séquences qui ont été triées dans une opération de séquence. Semblable au tri rapide, examinons la mise en œuvre de la fusion en Java.
Le tri de fusion (fusion) consiste à fusionner les deux (ou plus) ou plus de tables de commande dans un nouvel ordre, c'est-à-dire diviser la séquence à tri en plusieurs séquences, et chaque séquence suivante est ordonnée. Combinez ensuite la séquence d'ordre dans l'ordre global.
Le tri de fusion est un algorithme de tri efficace basé sur les opérations de fusion. Cet algorithme est une application très typique de la division et de la conquête. Fusionner les séquences suivantes existantes pour obtenir une séquence complètement ordonnée; Si les deux tables ordonnées sont fusionnées dans une table ordonnée, appelée 2 routes.
Les algorithmes de tri de fusion sont stables et le tableau nécessite un espace supplémentaire de O (n).
Principe de travail:
1. Appliquez l'espace pour faire la taille des deux séquences triées.
2. Définissez deux pointeurs, et les positions initiales sont la position de départ de deux séquences triées, respectivement.
3. Comparez les éléments pointés par les deux pointeurs, choisissez un élément relativement petit dans l'espace de fusion et déplacez le pointeur vers l'emplacement suivant
4. Répétez l'étape 3 jusqu'à ce qu'un pointeur atteigne la fin de la séquence
5. Copiez tous les éléments restants de l'autre séquence directement à la queue de la séquence de fusion
Implémentation du code:
//////////////// VOID PUBLIQUE MERGESTort () {Long [] Workspace = new Long [Nelems]; [] Workspace, int bowerbound, int haut-bend) {if (inférieur == Upperbound) {return;} else {int mid = (inférieur + upper) / 2; Mid + 1, Upperbound); Merge (Workspace, Lowerbound, Mid + 1, Upperbound);}} Merge vide privé (Long [] Workspace, int logtr, int highptr, int hupperbou nd) {int j = 0; ; +] = Thearray [LowPtr ++];} else {workspace [j ++] = thearray [highptr ++];} while (lowPtr <= mid) {workspace [j ++] = thearray [LowPtr ++]; } While (highptr <= upp Erbound) {workspace [j ++] = thearray [highptr ++];} pour (j = 0; j <n; j ++) {thearray [bowerbound + j] = espace de travail [j ];}}
Le tri de fusion est un type relativement stable. Dans l'ordre des informations.
On espère que cet article est utile à la conception du programme Java de tous.