El ejemplo de este artículo le dice la fusión y la clasificación del resumen del algoritmo de clasificación Java. Compártelo para todos para su referencia. El análisis específico es el siguiente:
La operación de fusión (fusión), también conocida como algoritmo de fusión, se refiere a fusionar dos secuencias que se han clasificado en una operación de secuencia. Similar a la clasificación rápida, veamos la implementación de los fusionados en Java.
La clasificación de fusión (fusión) es fusionar las dos (o más) o más tablas de pedido en un nuevo orden, es decir, divide la secuencia que se clasificará en varias secuencias, y cada secuencia posterior es ordenada. Luego combine la secuencia de orden en el orden general.
La clasificación de fusión es un algoritmo de clasificación efectivo basado en operaciones de fusión. Este algoritmo es una aplicación muy típica de divide y conquista. Fusionar las secuencias posteriores existentes para obtener una secuencia completamente ordenada; Si las dos tablas ordenadas se fusionan en una tabla ordenada, se llaman 2 roads.
Los algoritmos de clasificación de fusión son estables, y la matriz requiere espacio adicional de O (n).
Principio de trabajo:
1. Solicite espacio para hacer el tamaño de las dos secuencias ordenadas.
2. Establezca dos punteros, y las posiciones iniciales son la posición inicial de dos secuencias ordenadas, respectivamente.
3. Compare los elementos señalados por los dos punteros, elija un elemento relativamente pequeño en el espacio de la fusión y mueva el puntero a la siguiente ubicación
4. Repita el paso 3 hasta que un puntero alcance el extremo de la secuencia
5. Copie todos los elementos restantes en la otra secuencia directamente a la cola de la secuencia de fusión
Implementación del código:
/////////////// public void Mergesort () {Long [] Workspace = new Long [Nelems]; [] Workspace, int LowerBound, int UpperBound) {if (LowerBound == UpperBound) {return;} else {int mid = (LowerBound+Boundbound)/2; Mid+ 1, Fusionado superior); ; +] = Thearray [lowPtr ++];} else {workspace [j ++] = thearray [highptr ++];} while (lowptr <= mid) {workspace [j ++] = thearray [lowPtr ++]; } While (highptr <= upp erbound) {workspace [j ++] = thearray [highptr ++];} para (j = 0; j <n; j ++) {thearray [Lowerbound+j] = Workspace [J ];}}
La clasificación de fusión es un tipo relativamente estable. En el orden de entrada.
Se espera que este artículo sea útil para el diseño del programa Java de todos.