Paso 1 (i = 0)
Comparamos items[0] con 30:
Paso 2 (i = 1)
Comparamos items[1] con 30:
Paso 3 (i = 2)
Comparamos items[2] con 30:
Resultado: devolvemos 2 y termina la búsqueda.
i = 0 → 1 → 2 → 3 No hay coincidencias en ninguna posición válida.
Como no retornamos dentro del bucle, al final devolvemos -1.
MainPensamos en cuántas comparaciones hace buscarEn(item) antes de decidir.
La salida temprana ayuda cuando aparece pronto, pero si está al final (o no está), se recorre todo.
Para un arreglo de tamaño n y un item:
Si item está en la posición j (0-indexado), T(n) = j + 1 (comparaciones).
Si item no está, T(n) = n (comparamos todo y devolvemos -1).
Por tanto:
item en la primera celda → 1 comparación → O(1).item al final o no está → n comparaciones → O(n).item está, E[T] = (n + 1) / 2. si puede no estar con prob. p: E[T] = (1 − p)·(n + 1)/2 + p·n = O(n).La salida temprana mejora la constante esperada, no el orden de crecimiento.
Con n = 1,000,000 y el item al final o ausente: haces ~1 millón de comparaciones.
Con n = 1,000,000 y el item uniforme al azar (presente): esperas ~500 mil comparaciones.
Conclusión operativa: sigue siendo lineal; crece proporcional a n.