¿Cuál es la complejidad Big-O de una búsqueda lineal?

Suponiendo que la comparación de cada elemento con la clave deseada lleva tiempo constante, la complejidad del peor de los casos es [matemática] O (n) [/ matemática], donde [matemática] n [/ matemática] es el número de elementos en la entrada. Esto se debe a que el peor de los casos siempre es “está en el último lugar donde miras” (aunque en esta situación, no irónicamente). Tenemos que mirar cada elemento para determinar si es el correcto, y en el peor de los casos. Tenemos que mirar todos los elementos.

Si quisiéramos obtener una tecnología súper técnica, podríamos preguntar cuánto tiempo nos llevó incrementar nuestro índice en la estructura de datos, en una máquina de acceso aleatorio. Afortunadamente, incrementar un número en 1, mientras que en el peor de los casos es logarítmico (tenemos que modificar [math] \ log_2 n [/ math] bits), solo requiere un tiempo amortizado constante, por lo que no altera nuestra estimación.

Si la clave deseada se distribuye uniformemente dentro del espacio de búsqueda, entonces tenemos [math] \ Theta (n) [/ math] tiempo esperado también porque en promedio tendremos que buscar a la mitad de la colección.

La búsqueda lineal requiere entre [matemática] 1 [/ matemática] y [matemática] n [/ matemática] pasos antes de encontrar el elemento o aprender que no existe ningún elemento con la propiedad buscada. Por lo tanto, tiene [math] \ frac {n + 1} {2} [/ math] pasos en promedio si se supone que los elementos se distribuyen uniformemente en la lista. El promedio y el número máximo de pasos es [matemática] O (n) [/ matemática].

Esto es, por supuesto, la complejidad del tiempo. Tenga en cuenta que también tiene sentido pedir complejidad espacial. Aquí, solo se necesita una cantidad constante de espacio adicional (por ejemplo, variables para almacenar el elemento de lista activo), por lo que la complejidad del espacio es [matemática] O (1) [/ matemática].

[matemáticas] O (n) [/ matemáticas] a menudo se llama tiempo lineal. Como era de esperar, la búsqueda lineal se ejecuta en tiempo lineal, ya que el peor de los casos es que el elemento que está buscando está en la posición [math] n [/ math] ‘de la matriz.

Complejidad de tiempo en el mejor de los casos [matemática] O (1) [/ matemática], complejidad de tiempo en el peor de los casos [matemática] O (n) [/ matemática], complejidad de tiempo promedio del caso [matemática] O (n) [/ matemática] . Espacio [matemática] O (1) [/ matemática].

Ya respondiste

Es lineal, eso es todo.