Comparaciones promedio en búsqueda lineal
Esta calculadora de comparaciones de búsqueda lineal muestra cuántas comprobaciones de igualdad realiza una búsqueda secuencial cuando se sabe que el objetivo está presente en una colección de n elementos.
Ejecutar — gratis
Bajo el supuesto habitual de que el objetivo tiene la misma probabilidad de ocupar cualquier posición, informa tanto del número esperado de comparaciones como del peor caso. Así, desarrolladores, estudiantes y revisores pueden relacionar la notación O(n) con cifras concretas para un tamaño de colección determinado.
Comprenda el modelo de probabilidad del promedio
La búsqueda lineal examina los elementos en orden y se detiene en cuanto encuentra el objetivo. Si un objetivo presente tiene la misma probabilidad de estar en cualquiera de las n posiciones, encontrar el primer elemento cuesta una comparación, el segundo cuesta dos y el último cuesta n. Cada coste tiene una probabilidad de 1/n. Por tanto, el coste esperado es la media aritmética de los enteros de 1 a n, que se simplifica como (n + 1) / 2. Introduzca el tamaño de la colección como n y la calculadora aplicará esa fórmula exacta. El supuesto es importante: no se trata de una estimación basada en tiempos, hardware ni un lenguaje de programación. Es un recuento determinista para una búsqueda correcta con distribución uniforme de posiciones. Si ciertas posiciones o valores se consultan más, sus probabilidades deben ponderarse por separado. Tampoco describe un objetivo ausente, que exige revisar los n elementos.
Interprete las comparaciones medias y máximas
El resultado medio puede ser entero o terminar en medio punto. Por ejemplo, una colección de 100 elementos tiene un coste esperado de 50.5 comparaciones. Esa fracción no significa que una ejecución realice media comparación, sino que representa la media a largo plazo de muchas búsquedas correctas con posiciones uniformes. El peor caso es n porque un objetivo situado al final solo se encuentra después de comprobar todos los elementos. Con un único elemento, ambos valores son uno. A medida que n crece, el promedio se aproxima a la mitad de la colección, mientras que el peor caso sigue siendo el tamaño completo. Ambos aumentan linealmente; por eso el análisis asintótico clasifica la búsqueda lineal correcta como O(n), aunque las constantes difieran. Use el promedio para cargas que cumplan la distribución indicada y el peor caso como límite estricto de una consulta correcta. Los valores no incluyen el control del bucle, accesos a memoria, ordenación ni el coste interno de comparar elementos.
Use el resultado en decisiones de diseño y rendimiento
Los recuentos concretos hacen que una conversación sobre algoritmos sea más útil que la notación asintótica aislada. Puede comparar el trabajo esperado de la búsqueda lineal con el coste de construir otra estructura de datos, especialmente si la colección es pequeña, se consulta poco o cambia con frecuencia. Una tabla hash o un índice ordenado puede reducir el trabajo de consulta, pero crearlo y mantenerlo también cuesta; un recorrido simple evita ese gasto. Esta calculadora aporta el lado del recorrido sin fingir que mide tiempos. También sirve para comprobar ejercicios, validar una hoja de cálculo, documentar una revisión de código o producir valores estables para material didáctico. Conserve las condiciones junto al resultado: el objetivo está presente, cada posición es equiprobable y la búsqueda empieza al principio y se detiene en la primera coincidencia. Los duplicados pueden romper el modelo porque se encuentra antes la primera aparición. Para objetivos ausentes use n comparaciones; para accesos no uniformes calcule una esperanza ponderada.
Qué puede hacer con ella
Comprobar un ejercicio de algoritmos
Confirme los recuentos esperado y máximo de una búsqueda correcta para un tamaño de colección dado.
Estimar consultas repetidas
Cuantifique las comparaciones esperadas cuando los objetivos presentes se distribuyen uniformemente en una colección sin ordenar.
Explicar una decisión de estructura de datos
Compare el coste concreto del recorrido con el de crear y mantener un índice, un arreglo ordenado o una tabla hash.
Preguntas frecuentes
¿Qué fórmula se usa para el número medio de comparaciones?
Para un objetivo presente y equiprobable en cualquier posición, el promedio es (n + 1) / 2 comparaciones.
¿Por qué el promedio puede incluir media comparación?
Es un valor esperado de muchas búsquedas, no el recuento de una sola. Cada búsqueda individual siempre realiza un número entero de comparaciones.
¿Cuál es el peor caso de una búsqueda lineal correcta?
El peor caso requiere n comparaciones y ocurre cuando el objetivo ocupa la última posición.
¿La calculadora contempla un objetivo ausente?
No. El modelo supone que está presente. Una búsqueda lineal ordinaria sin éxito examina los n elementos.
¿El resultado mide el tiempo de ejecución?
No. Solo cuenta comparaciones; el tiempo real también depende de la implementación, el coste de cada comparación, el hardware y otras operaciones.
Para desarrolladores — acceso por API
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.
Endpoint de API
¿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.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/dev/linear-search-avg \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"n":100}'const res = await fetch("https://api.kit.forhosting.com/dev/linear-search-avg", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"n": 100
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/linear-search-avg",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"n": 100
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/linear-search-avg", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"n":100}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"n":100}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/linear-search-avg", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"n": 100
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.linear_search_avg",
"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.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |