¿Cuáles son algunos algoritmos que usamos diariamente que tienen complejidades [matemáticas] O (n), O (n ^ 2), [/ matemáticas] y [matemáticas] O (\ log n) [/ matemáticas]?

O (n): comprar artículos de una lista de la compra siguiendo la lista un artículo a la vez, donde “n” es la longitud de la lista

O (n): comprar artículos de una lista de compras caminando por cada pasillo (ahora “n” es la longitud de la tienda), si suponemos que el tiempo de verificación de la lista es trivial en comparación con el tiempo de caminata

O (n): sumando dos números en representación decimal, donde n es el número de dígitos en el número.

O (n ^ 2): tratando de encontrar dos piezas de rompecabezas que encajen entre sí probando todos los pares de piezas exhaustivamente

O (n ^ 2): estrechar la mano de todos en la sala; pero esto está paralelo, por lo que cada persona solo trabaja O (n).

O (n ^ 2): multiplicando dos números usando el algoritmo de multiplicación de la escuela primaria, donde n es el número de dígitos.

O (log n): trabajo realizado por cada participante en un árbol telefónico que llega a N personas. Sin embargo, el trabajo total es obviamente O (n).

O (log n): encontrar dónde lo dejaste en un libro del que se cayó tu marcador, reduciendo sucesivamente el rango

Si se refería a algoritmos que usamos en nuestra vida cotidiana cuando no estamos programando:

  • O(log n) : busca una página en un libro / palabra en un diccionario.
  • O(n) : Búsqueda y eliminación de correos electrónicos no deseados (boletines, promociones) en correos electrónicos no leídos.
  • O(n ^ 2) : organiza los iconos en el escritorio en un orden de preferencia (inserción o selección según la persona).
  • O (n) para buscar un elemento en la lista vinculada. (Lista Contiene ())
  • O (logn) para buscar un elemento en una lista ordenada. (SortedList.Contains ())
  • No querrás preferir llamar a O (n2) todos los días.

Un ejemplo más común que me viene a la mente es Insertion Sort. Es O (n ^ 2) y se usa en el juego de naipes.