Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

197
Visualizações
Complejidad temporal del filtro con un bucle anidado

Soy bastante nuevo en Big O y no estoy seguro de cuál será la complejidad temporal del siguiente código:

 const items = [ {type: 'phone', name: 'iPhone', color: 'gold'}, {type: 'phone', name: 'Samsung', color: 'gold'}, {type: 'laptop', name: 'Chromebook', color: 'gray'}, {type: 'tv', name: 'LG', color: 'gray'}, {type: 'gooo', name: 'LG', color: 'silver'}, {type: 'phone', name: 'Nokia', color: 'gold'} ]; items.filter(item => { for(let i=0; i < Object.keys(item).length; i++) { console.log('item is', Object.keys(item)[i]) } })

¿Podemos decir que esto es O(i + c) donde i son items y c es la console.log constante? ¿O necesitamos decir algo como O(i * j + c) donde j es el item individual, es decir, {type: 'phone', name: 'iPhone', color: 'gold'}

¿Alguien puede ayudarme? ¡Gracias de antemano!

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

El items.filter(() => { ... }) es un bucle => O(n) .

Tiene un bucle for dentro de él que recorre las claves de objeto => O(m * n) .

Object.keys() es O(m) en V8 y lo tiene dos veces en el bucle for (en la condición en que se llama en cada iteración y en el cuerpo del bucle), por lo que es => O(m ^ 2 * n) (donde m es el número de claves).

Además, puedes usar

 for (let key in item) { // and do whatever you want with the key }

en lugar de usar Object.keys .

about 4 years ago · Juan Pablo Isaza Relatório

0

Déjame cambiar un poco tu código:

 items.filter(item => Object.keys(item).forEach(key => console.log("item is", key)));

La lambda se ejecuta para cada elemento en items . La lambda itera sobre cada clave en un elemento y lo imprime. Por lo tanto, la complejidad temporal es O(n*m) para n = número de elementos ym = número de claves por elemento. Si el número de claves por artículo es fijo y relativamente pequeño, puede suponer O(n). La notación O grande es solo una estimación aproximada del tiempo de ejecución, los factores constantes no son tan interesantes.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda