¿Las notaciones lineales siempre se dan en bucles?
PREGUNTA:
las notaciones lineales siempre se dan en bucles ? o no necesariamente? porque en los ejemplos he visto siempre el "for" recorriendo un array. 🫨
RESPUESTA:
No siempre, pero muchas veces sí.
O(n) significa que el tiempo de ejecución crece proporcionalmente al tamaño de los datos de entrada. Un For que recorre un array de tamaño n es un ejemplo clásico de O(n), pero no es la única forma de tener complejidad lineal.
Ejemplos de O(n):
✅ Recorrer un array con un for.
✅ Buscar un elemento en una lista sin ordenar.
✅ Clonar un array o lista.
✅ Sumar todos los elementos de una lista.
Ejemplos que NO son O(n):
❌ Acceder a un elemento en un array por índice (eso es O(1)).
❌ Usar un For que vaya saltandose elementos y no recorra todo (por ejemplo, for i in range(0, n, 2) no siempre es O(n), podría ser O(n/2), que sigue siendo O(n) en notación Big O, pero cambia en la práctica).
Entonces, aunque los bucles son el caso más común, no siempre es necesario un for para que algo sea O(n).