¿Qué algoritmos de clasificación tienen la mejor complejidad de tiempo de caso?

cada algoritmo tiene un mejor caso, un caso promedio y un análisis de complejidad de tiempo en el peor de los casos. El mejor caso ocurre cuando el algoritmo realiza el menor número de operaciones básicas durante su procesión. En contraste, el peor de los casos ocurre cuando el algoritmo aborda el número máximo de sus operaciones básicas. Finalmente, el análisis de caso promedio es el número esperado de operaciones básicas que el algoritmo está abordando para una entrada aleatoria. Su cálculo generalmente implica estadísticas y requiere un cierto conocimiento en matemáticas.
La operación básica es la operación en la que se realiza más en el algoritmo. Por ejemplo, el algoritmo de clasificación de selección realiza dos operaciones principales: asignaciones de elementos y comparaciones de elementos. Sin embargo, el número máximo posible de asignaciones de elementos que el algoritmo puede hacer es exactamente (n-1) y el número máximo de comparaciones de elementos que el algoritmo podría realizar es n (n-1) / 2. Podemos concluir con seguridad que la operación básica en el algoritmo de clasificación de selección son las comparaciones de elementos, pero la asignación de elementos es una operación elemental. La operación de comparación de elementos es la operación básica en muchos algoritmos de clasificación “Algoritmos basados ​​en comparación”.
Después de esta larga introducción, puede seguir este enlace para clasificar cada algoritmo de clasificación por su mejor análisis de complejidad de caso, peor caso o tiempo promedio. Es una clasificación para los algoritmos de clasificación más comunes que se introducen en muchos cursos de algoritmos informáticos en muchas universidades.

Dado el rango de números, el hash-sort tendría la mejor complejidad (básicamente O (n)). Sin embargo, el rango generalmente no se proporciona y los goto habituales, como la ordenación rápida y la ordenación por fusión, tienen una complejidad temporal de O (n * log (n)).

  • Si tiene suficiente conteo de RAM, la clasificación es Orden N
  • La clasificación por radix funciona bien para elementos de igual ancho de bits, Orden X * N * Log N donde X es inversamente proporcional al tamaño de palabra de la máquina.
  • La clasificación rápida es la mejor clasificación en el lugar, la clasificación por fusión y la clasificación rápida son las mejores clasificaciones generales
  • Para arreglos pequeños de elementos fáciles de copiar (<100 elementos), la mejor forma de inserción es

Es posible que desee hacer referencia a esto: http://en.m.wikipedia.org/wiki/S

Claramente depende del modelo que elijas. Por ejemplo, si elige la ordenación basada en la comparación, la ordenación rápida con pivote aleatorio es la mejor.

Heap sort con la complejidad de tiempo promedio de O (n * log (n)).

More Interesting

¿Dónde puedo encontrar un entrenador de programación personal que me enseñe programación y algoritmos?

Cómo usar el código VHDL para generar el seno de un ángulo dado usando el algoritmo CORDIC

¿Mattermark está utilizando datos para entrenar algoritmos de aprendizaje automático y modelos predictivos que pueden buscar / identificar nuevas empresas potenciales en una etapa temprana que tienen el potencial de interrumpir la industria?

¿Desglosar el problema en piezas más pequeñas siempre ofrece una mejor solución?

¿Por qué los algoritmos de compresión de datos sin pérdida no funcionan bien en archivos de video?

¿Cuáles son los algoritmos de geometría computacional que aparecen en los concursos de programación? ¿Cuál de ellos es más frecuente que los demás? ¿Qué estructuras de datos geométricos aparecen en los concursos de programación?

Cómo entender la notación big-O

¿Cuáles son los mejores algoritmos de aprendizaje sin supervisión para la corrección de errores tipográficos?

¿Cuál es la forma de encontrar tres números cuyo producto y suma sean iguales?

Cómo encontrar el factorial de un número grande, como 100, en C

¿Cuál es la diferencia entre la función de aptitud del algoritmo genético y la función de pérdida del descenso de gradiente?

En Python, dada la siguiente permutación de a, b, c, d, e, f, g, h, i, j, ¿cuál es la próxima permutación en el orden lexicográfico (diccionario)?

Según usted, ¿cuáles son los algoritmos de aprendizaje automático más importantes en la actualidad?

¿Cuál es la solución eficiente para SPOJ CCROSSX?

¿Por qué necesitamos el término de sesgo en algoritmos ML como la regresión lineal y las redes neuronales?