ForHosting KIT · Utilidades de desarrollo

Comparaciones de merge sort: peor caso y caso promedio

Esta calculadora estima cuántas comparaciones entre elementos realiza un merge sort descendente estándar con una entrada de n elementos.

● BetaGratis · en su navegador
Úselo desde WebAPIEmailTelegramApp pronto

Devuelve el recuento exacto del peor caso, el valor esperado para un orden aleatorio uniforme, los niveles de fusión recursiva y n por logaritmo en base 2 de n como referencia. Así puede observar el crecimiento lineal-logarítmico y compararlo con el de algoritmos cuadráticos.

Qué cuenta la calculadora

El cálculo considera las comparaciones de orden entre elementos durante la fusión, la operación central del análisis habitual de merge sort. No incluye comprobaciones de índices, asignaciones, escrituras en matrices temporales, llamadas recursivas, reservas de memoria ni el trabajo interno de un comparador personalizado. Un solo elemento no requiere ninguna comparación. Con entradas mayores, el algoritmo divide el intervalo, ordena ambas partes y compara repetidamente sus primeros elementos pendientes. Fusionar grupos de a y b elementos requiere como máximo a más b menos una comparaciones, pues el último elemento restante se copia sin otra comparación. El peor caso combina esta regla en el árbol de particiones real, incluso cuando n no es potencia de dos. Por ello, n_log2_n sirve como escala, mientras que los otros campos ofrecen las estimaciones operativas.

Cómo se obtienen el peor caso y el promedio

La fórmula exacta del peor caso es n por el techo del logaritmo en base 2 de n, menos dos elevado a dicho techo, más uno. Describe un merge sort binario estándar con submatrices divididas del modo más equilibrado posible. El promedio es una esperanza sobre permutaciones uniformemente aleatorias de claves distintas. En cada fusión de tramos con a y b elementos, el número esperado es a más b, menos a dividido entre b más uno, menos b dividido entre a más uno. La calculadora suma recursivamente ese coste sobre el mismo árbol equilibrado y solo redondea el resultado mostrado a seis decimales. Una esperanza puede ser fraccionaria aunque cada ejecución haga un número entero de comparaciones. Las claves duplicadas, otros criterios de desempate, las secuencias naturales o los umbrales de inserción pueden modificar la cifra observada.

Cómo interpretar el resultado lineal-logarítmico

El valor n_log2_n muestra la escala lineal-logarítmica característica. Cada nivel adicional procesa los n elementos, pero el número de niveles solo crece de forma logarítmica. Los dos cocientes dividen las comparaciones estimadas entre n por logaritmo en base 2 de n y permiten ver cuánto se acercan las cifras concretas a esa referencia cuando n es mayor que uno. Son valores descriptivos, no pruebas de complejidad ni mediciones de hardware. El tráfico de memoria, las reservas, el coste del comparador, la caché y el entorno de ejecución pueden dominar el tiempo real. Pruebe tamaños situados justo antes y después de potencias de dos: allí cambia la profundidad recursiva y se aprecia por qué la notación O grande omite constantes y términos menores sin que estos dejen de importar para una entrada concreta.

Planificar comparadores costosos

Estime las llamadas a un comparador de registros caro antes de ejecutar una ordenación estable grande.

Explicar el crecimiento algorítmico

Compare los recuentos exactos con n por logaritmo en base 2 de n para distintos tamaños.

Definir expectativas de prueba

Fije un límite de peor caso para contadores de comparaciones en una implementación instrumentada.

¿Qué significa aquí una comparación?

Es una comparación de orden entre elementos al fusionar dos tramos ordenados; se excluyen la gestión y el movimiento de datos.

¿Por qué el promedio puede ser fraccionario?

Porque es el valor esperado sobre todas las permutaciones uniformemente aleatorias, no el recuento de una ejecución.

¿La estimación incluye valores duplicados?

No. El modelo promedio supone claves distintas; los duplicados y desempates pueden alterar el resultado.

¿Es una prueba de rendimiento?

No. Estima comparaciones y no modela memoria, procesador, entorno, reservas ni latencia del comparador.

¿Qué variante de merge sort se modela?

La variante binaria descendente estándar, que divide cada intervalo en dos partes tan iguales como sea posible.

¿Cuánto cuesta una solicitud de API?

Cada solicitud de API cuesta $0.002; el navegador puede utilizar la misma lógica determinista.

Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.

POSThttps://api.kit.forhosting.com/dev/merge-sort-comparisons

¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.

curl -X POST https://api.kit.forhosting.com/dev/merge-sort-comparisons \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":8}'
{
  "n": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.merge_sort_comparisons",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.

Por solicitud$0.002

Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.

HTTPCódigoSignificado
401unauthorizedAPI key ausente o inválida.
402insufficient_balanceEl saldo no cubre el precio de la tarea.
404unknown_typeEl tipo de tarea no existe.
429rate_limitedDemasiadas peticiones. Use el webhook en vez de sondear.

Ver la documentación completa del KIT →