Descripción del algoritmo: para un conjunto dado de registros, primero fusione cada dos subsecuencias adyacentes de longitud 1 para obtener N/2 (redondeadas hacia arriba) subsecuencias ordenadas de longitud 2 o 1, y luego fusionas en pares, y repita este proceso hasta que se obtenga una secuencia ordenada.
clasificación de paquetes;/*** Merge Sort* promedio o (nLogn), mejor o (nLogn), peor o (nLogn); Complejidad espacial O (N); estable; Más complejo * @author zeng * */public class Mergesort {public static void merge (int [] a, int inicio, int mid, int end) {int [] tmp = new int [a.length]; system.out.println ("fusionar" + start + "~" + end); int i = inicio, j = mid + 1, k = start; start; star (a [i] <a [j]) tmp [k ++] = a [i ++]; else tmp [k ++] = a [j ++];} while (i! = Mid+1) tmp [k ++] = a [i ++]; while (j! = end+1) tmp [k ++] = a [j ++]; for (i = start; i <= end; i ++) [i] = tmp [i]; for (int p: a) System.out.Print (P+" "); System.out.println ();} static void Mergesort (int [] a, int inicio, int end) {if (inicio <end) {int mid = (start + end)/ 2; Mergesort (a, inicio, mid); // MergeSort ordenado (A, Mid + 1, End); // ordenado (a, inicio, mediano, end);}} {int [] b = {49, 38, 65, 97, 76, 13, 27, 50}; Mergesort (B, 0, B.Length - 1);}}Echemos un vistazo a los resultados de la operación:
Resumir
Lo anterior es todo el contenido de este artículo sobre la simple implementación de la clasificación de fusiones de algoritmos de clasificación Java. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!