Hay un curso de BigO muy bueno
Introducción al Clean Code
Deuda técnica y refactorización de código
Reglas del diseño simple
Qué es Clean Code
Nombre y uso de las variables
Uso correcto de var, let y const
Reglas para la nomenclatura
Cómo nombrar según el tipo de dato
Ejercicio: Nombra correctamente según su tipo de dato
Ámbito de las variables
Ámbito global
Ámbito local o de función
Ámbito de bloque
Ámbito estático
Hoisting
Funciones
Declaración y expresión de funciones
Parámetros y argumentos
Funciones de flecha y el this
Clases
POO con ES6 (constructores, métodos y herencia)
Herencia en JavaScript
Tamaño reducido (responsabilidad única)
Organización
Optimizaciones
Cuándo usar comentarios
Formato coherente (codear en equipos)
Principio DRY
Notación big O
Cierre
Sigue aprendiendo JavaScript
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Alejandra Camacho
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
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.
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"]>
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?