Puede que esta no sea una buena manera, pero probablemente proporcionará cierta intuición sobre cómo funciona en O (n logn). Pensemos en Big O como la cantidad de operaciones que necesita para hacer el trabajo. Ahora, el tipo de fusión es básicamente una función recursiva que hace lo siguiente.
- Divide la matriz en dos partes iguales.
- Ordena recursivamente las dos matrices.
- Luego fusiona las matrices juntas.
Ahora la parte de división es básicamente una sola operación. En la operación de fusión, itera linealmente a través de todos los elementos en las dos matrices. Entonces eso es O (n). Ahora, la única parte que queda es cuántas veces ocurre esta operación O (1 + n). Bueno, esto se puede responder desde el siguiente árbol, que obtenemos cuando clasificamos recursivamente las dos matrices.
- ¿Alguien está usando algoritmos epigenéticos?
- ¿Alguien puede dar el algoritmo detallado del algoritmo mejorado de segunda oportunidad?
- Cómo enmarcar mi idea de algoritmo para que alguien que escribe algoritmos pueda entenderlo
- ¿Cuáles son las mejores prácticas para usar algoritmos de Machine Learning con Android?
- ¿De qué manera es el capitalismo como un algoritmo?
Perdón por mi mala letra, pero creo que es legible. Como puede ver, para n = 16, hay 5 niveles, que es log n. Y en cada nivel, el número total de operaciones es como máximo 16 (n). Así que básicamente hacemos a lo sumo n operaciones en cada uno de los niveles de log n. Por eso, la complejidad del tiempo general es O (n logn).