Aprende Inglés, Programación, AI, Ciberseguridad y mucho más.

Antes: $249

Currency
$209
Suscríbete

Termina en:

4 Días
17 Hrs
4 Min
55 Seg

Notación big O

23/24

Lectura

La Big O notation o también conocida como la notación Big O es la expresión matemática de cuánto se tarda en ejecutar un algoritmo en función de la longitud de entrada, normalmente hablando del peor de los casos.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 4

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hay un curso de BigO muy bueno

Otros algoritmos de búsqueda muy famosos que usan O(n log n) son los binarios. Cualquier algoritmo binario tiene esta notación, lo cual la hace muy eficiente, pero para que esto funcione, la data necesita estar ordenada.

La notación Big O en JavaScript se refiere a una forma de analizar y comparar el rendimiento y la eficiencia de los algoritmos y las funciones en términos de su tiempo de ejecución y uso de memoria. * **Notación Big O**: Es una forma de describir la complejidad temporal o espacial de un algoritmo en función del tamaño de entrada.

O(1)

<const getLast = items => items[items.length-1];

console.log(getLast(['a', 'b', 'c', 'd'])); //> d(1 iteración)
console.log(getLast(['a', 'b', 'c', 'd', 'e', 'f', 'g'])); //> g(1 iteración)> 

O(N)

<const findIndex = (items, match) => {
  for (let i = 0, total = items.length; i < total; i++)
    if (items[i] == match)
      return i;
   return -1;
};

const array= ['a', 'b', 'c', 'd'];
console.log(findIndex(array, 'a')); // 0  (1 iteración)
console.log(findIndex(array, 'd')); // 3  (4 iteraciones)
console.log(findIndex(array, 'e')); // -1 (4 iteraciones)> 

O(N²)

<const buildSquareMatrix = items => {
  let matrix = [];
  for (let i = 0, total = items.length; i < total; i++){ 
    matrix[i] = [];
    for (let j = 0, total = items.length; j < total; j++)
      matrix[i].push(items[j]);
  }
  return matrix;
};


console.log(buildSquareMatrix(['a', 'b', 'c'])); 

/* 9 iteraciones para 3 elementos, retorna:
[
  ['a', 'b', 'c'],
  ['a', 'b', 'c'],
  ['a', 'b', 'c']
]

*/ > 

O(n log n)

<const quickSort = list => {
  if (list.length < 2) 
    return list;
  let pivot = list[0];
  let left  = []; 
  let right = [];
  for (let i = 1, total = list.length; i < total; i++){
    if (list[i] < pivot)
      left.push(list[i]);
    else
      right.push(list[i]);
  }
  return [
    ...quickSort(left), 
    pivot, 
    ...quickSort(right)
  ];
};

console.log(quickSort( ['q','a','z','w','s','x','e','d','c','r']));
// ["a", "c", "d", "e", "q", "r", "s", "w", "x", "z"]>