¿Cuál es el mejor método de clasificación para usar si solo un elemento está fuera de servicio?

Trabajar con el tipo de inserción es lo primero que viene a la mente. Sin embargo, la ordenación por inserción tiene dos operaciones principales: asignaciones de elementos y comparaciones de elementos. El costo total del tipo de inserción sería la suma de los costos de estas dos operaciones principales.

Más aún, se puede seguir el siguiente algoritmo de fusión modificado. En primer lugar, encontrará el elemento fuera de servicio y lo colocará en una variable auxiliar. Luego lo fusionará con los otros elementos utilizando el conocido algoritmo de fusión. El pseudocódigo se da a continuación. El primer ciclo costará O (n) y el algoritmo de fusión también costará O (n). Sin embargo, el costo total es [matemática] O (2n) = O (n) [/ matemática]

para i = 2 a n
si (A [i]> A [i-1])
aux1.add (A [i])
más
out_of_order_el = A [i]
descanso
terminara si
fusionar (aux1, aux2)

La observación final es que el algoritmo de fusión es solo la parte de fusión del algoritmo de clasificación de fusión.

Una vez que haya encontrado el elemento que está fuera de lugar, puede usar el método de inserción para colocarlo en el lugar correcto en tiempo lineal. No será el algoritmo del libro de texto porque está trabajando con una lista vinculada en lugar de una matriz, pero la modificación es simple.

More Interesting

¿Cuál es el algoritmo más preciso (sin usar un software) para predecir el número 21 basado en 20 números anteriores?

¿Cuáles son algunas de las implementaciones de cola (montón) de prioridad más rápida en C ++?

Cómo combinar la ordenación por fusión y la ordenación por peine

¿Cuál es el algoritmo más eficiente y efectivo para la detección de anomalías / valores atípicos cuando los datos tienen un pico / valle estacional?

¿Cómo puedo encontrar la ruta más larga de un gráfico bidireccional utilizando el algoritmo BFS?

¿Sigue siendo relevante el modelado de objetos, o se ha reemplazado hoy solo con datos y algoritmos?

Cómo resolver el problema de cambio de UVa 166 si tenemos una oferta limitada de cada denominación

Cómo construir un gráfico si se proporciona el recorrido DFS y el recorrido BFS

¿Cuáles son las ventajas y desventajas de comparar la búsqueda de árboles de Monte Carlo y la programación dinámica aproximada?

Gráfico distribuido: ¿Cuál es la forma más efectiva de distribuir los nodos de un gráfico en diferentes servidores en un sistema distribuido?

¿Qué algoritmo de extracción de características es adecuado para el reconocimiento facial basado en video?

Cómo escribir un algoritmo de la pila de programas usando una matriz en C

¿Qué técnica general siguen los autores al escribir libros técnicos en LaTeX?

¿Es la calificación de revisión un factor en el algoritmo de 'Yelp Sort' de Yelp?

¿Cuáles son algunos buenos tutoriales que dividen, conquistan y analizan los algoritmos más complejos jamás diseñados?