El ejemplo de este artículo dice 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:
En 1991, Robert W. Flayd, profesor en el Departamento de Ciencias de la Computación del Departamento de Ciencias de la Computación de la Universidad de Stanford, y J. Williams en 1964 inventó conjuntamente la famosa esencia de la famosa clasificación (clasificación de montón) Este artículo presenta principalmente a Java a la clasificación del montón.
HeepSort se refiere a un algoritmo de clasificación diseñado por la estructura de datos de la pila (montón), que puede usar las características de la matriz para localizar rápidamente el elemento de los índices especificados. El orden de apilamiento es un método de clasificación inestable.
El orden de apilamiento utiliza las características del registro máximo (o mínimo) de las palabras clave de un registro superior de la pila de pila grande (o pila de raíz pequeña), lo que hace que el registro de la palabra clave máxima (o mínima) en el área desordenada actual sea simple.
(1) Ideas básicas ordenadas con una gran pila
① Primero construya el archivo inicial R [1..n] en una gran pila de raíces. satisfacer r [1 .. n-1]. keys≤r [n] .key
③ Dado que la nueva raíz R [1] puede violar la naturaleza del montón después del intercambio, la región actual no ordenal R [1 .. N-1] debe ajustarse en un montón. Luego, las palabras clave en las palabras clave en R [1..N-1] nuevamente se intercambian con el último registro R [N-1] en el intervalo, que obtuvo una nueva región desordenada R [1 ..... N-2 ] y un área ordenada r [n-1..n], y aún satisface la relación r [1 ..- .. n-2]. Keys≤r [n-1..n]. Keys, también a R [1..N-2] Ajuste al montón.
Ninfo
Hasta que solo haya un elemento en el área desordenada.
(2) Operación básica del algoritmo de clasificación de una gran raíces:
① Inicializar la operación: construcción de R [1..n] en el montón inicial;
② Operación básica de cada tipo: Intercambie el último registro del registro de la pila R [1] en el área desordenada actual, y luego ajuste el nuevo área desordenada en una pila (también conocida como reconstrucción).
Aviso:
① Simplemente realice la clasificación N-1 y seleccione una palabra clave N-1 más grande para aumentar el archivo en orden.
② La clasificación con raíces pequeñas es similar a las raíces grandes, pero los resultados de su tipo están disminuyendo y ordenadas. La orden de apilamiento y la selección directa de clasificación son opuestas: en cualquier momento, la región desordenada siempre está antes del área ordenada, y el área ordenada se está expandiendo gradualmente desde la parte trasera del vector original a todo el vector.
Implementación del código:
Prueba de clase pública {public static int [] Heap = {10, 32, 1, 9, 5, 7, 0, 4, 3}; // matriz de datos preestablecido {int i; // La variable de ciclo int index = Heap.Length ;/ +) System.out .Printf ("%3s", Heap); (i = 1; i <index -1; i ++) System.out.printf ("%3s", Heap); Void creap (int root, int index) {int i, j; El submp = cabeza [raíz]; [j]) finalizar = 1; ; // Nodo principal = valor raíz} Public static void Heapsort (int index) {int i, j, temperatura; ; / / Inicie el tipo de pila para (i = index-1; i> = 1; i ------- {temp = Heap; // valor raíz y el último valor intercambio: head [1]; Heap [1] = testHeap (1, i); "%3s", Heap [j]);
El montón puede considerarse como un árbol, y la altura del nodo en la altura puede definirse como el número de la ruta de caída simple más larga desde el nodo hasta el nodo de la hoja; raíz. Veremos que algunas de las operaciones básicas en la estructura del montón son principalmente proporcionales a la altura del árbol, que es O (LGN). Al leer este artículo, espero ayudarte.
Se espera que este artículo sea útil para el diseño del programa Java de todos.