El algoritmo de Dijkstra (ruta más corta de una sola fuente; http://en.wikipedia.org/wiki/Dij…) es uno.
Otra es que si desea obtener los N elementos más grandes de un grupo de listas ordenadas (cada uno de longitud aproximadamente N), puede usar un montón mínimo como cola prioritaria.
Desplácese por todas las listas en paralelo, insertando elementos en el montón si son más grandes que el mínimo actual y desactivándolo cada vez que haya más de N elementos en el montón. Puede finalizar el recorrido por cada lista cuando su valor es menor que el mínimo actual en el montón. Hay algunos casos malos, pero en promedio terminan tomando aproximadamente O (N log N) y es mucho más rápido que ordenar todas las listas en una lista grande y tomar el primer N.
- ¿En qué programas podemos practicar para comprender la programación y los algoritmos?
- ¿Cómo funciona el algoritmo de Warnsdorff?
- Si [matemática] f (n) [/ matemática] [matemática] \ en O (n) [/ matemática] y [matemática] g (n) \ en O (n) [/ matemática], es [matemática] f ( g (n)) \ en O (n ^ 2)? [/ matemáticas]
- Cómo detener un algoritmo que alguien más que yo ha establecido en WhatsApp
- ¿Podemos modificar la técnica de descomposición de la raíz cuadrada a la descomposición de la raíz cúbica? Si no, ¿por qué?
Por ejemplo, para algo como Twitter, si tuviera una lista de tweets ordenados por tiempo para cada persona que está siguiendo y desea generar su página de inicio de Twitter, puede usar el método anterior.