Convierte tus certificados en títulos universitarios en USA

Antes: $249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

19 Días
14 Hrs
20 Min
58 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 5

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 es un concepto fundamental en ciencias de la computación y análisis de algoritmos. Se utiliza para describir el rendimiento o complejidad de un algoritmo, especialmente en términos de su tiempo de ejecución o espacio de memoria requerido, a medida que el tamaño de la entrada aumenta. Importancia: * Permite comparar la eficiencia de diferentes algoritmos. * Ayuda a predecir el comportamiento de un algoritmo con grandes conjuntos de datos. * Es crucial para optimizar el rendimiento de aplicaciones y sistemas.
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"]>