El ejemplo de este artículo indica la implementación y el análisis simple de varios algoritmos de clasificación de Java. Compártelo para todos para su referencia. Los detalles son los siguientes:
Prueba de paquete; Se determina si vietnamita, // la solicitud de la matriz comienza desde el segundo número. [j] <List [j -1 1]) {int temp = list [j]; Base, agregue la búsqueda binaria*/lugar void bininsertsort (int [] r, int low, int high) {for (int i = low+1; i <= high; i ++) {int temp = r [i]; // Guardar el elemento int hi = i -1; ; J> HI; int [] r, int low, int alto, int [] delta) {para (para (para (para (]. int k = 0; k <delngth; k ++) shellinsert (r, bajo, alto, delta [ K]);} private void shellinsert (int [] r, int low, int deldak) {for (int i = low+deltak; i <= high; i ++) if (r [i] <r [i-- Deltak]) {int temp = r [i]; ]; +) {// AS N -1 viajes a int min = k; <r [min]) min = i; min]; i = n/2; 1 1 1; ]; J <= High; r [j]; 0, 99, 55, 7, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 5, 4, 3, 2, 1}; fs.insortsort (a); , 0, A.Length-1);
Insertar la clasificación, la clasificación de intercambio, la clasificación de selección, la clasificación de fusiones y otros métodos de clasificación tienen una característica común, es decir, todos determinan la posición relativa entre los elementos a través de elementos comparativos, es decir, los métodos de clasificación anteriores se basan en la comparación. A continuación, compararemos y resumiremos en función de los métodos de clasificación comparativa.
Comparamos principalmente los métodos de clasificación de la complejidad del tiempo promedio del algoritmo, la peor complejidad del tiempo, la complejidad del espacio y la estabilidad de la clasificación.
Método de clasificación Complejidad de tiempo promedio La peor complejidad de la complejidad del tiempo La complejidad del espacio y la estabilidad de la estabilidad directamente insertada (N2) (N2) ο (1) Clasificación de espuma estable (N2) ο (N2) ο (1) Estable y rápida clasificación ) (N log n) l (n2) ο (log n) inestable y simplemente seleccione Ordenar ο (n2) ο (1) ο (1) Norma de montón inestable (n log n) ο (n log n) ο (n log n) ο (n log) 1) Ordena de fusión inestable ο (n log n) ο (n log n) ο (n) estable
En términos de rendimiento del tiempo, la clasificación rápida es el mejor rendimiento real en todos los algoritmos de clasificación. Esto se puede evitar cambiando la clasificación rápida. En la comparación de la clasificación de la pila y la clasificación de fusión, cuando N es grande, el tiempo requerido para las fusiones y la clasificación es menor, pero requiere más espacio de almacenamiento auxiliar.
Desde la perspectiva de la estabilidad del método, la mayor parte de la complejidad del tiempo es la clasificación de (N2) es un método de clasificación estable. La mayoría de los métodos de clasificación con buen rendimiento, como la clasificación rápida, la clasificación de apilamiento y la clasificación de Hill son inestables. En términos generales, el método de clasificación de la comparación entre el proceso de clasificación es estable.
Además, la estabilidad del método de clasificación está determinada por el método en sí.
En resumen, nadie de los métodos de clasificación discutidos anteriormente es absolutamente óptimo.
Se espera que este artículo sea útil para el diseño del programa Java de todos.