Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
¿Por qué mi bucle while no se interrumpe y sigue registrando el índice buscado en mi búsqueda binaria infinitas veces?

Usando javascript , he estado probando la búsqueda binaria y he tomado un ciclo while que repetirá la lista de números hasta que el primer índice sea menos que igual al último. Luego calculo el punto medio o la media y comparo el valor del índice del punto medio con el valor de entrada. Cuando coincide, muestra el índice del valor de entrada pero el ciclo nunca termina.

 function binary_search(value, array){ var first = 0; var last = array.length - 1; while(first <= last){ var midpoint = Math.floor((first + last) / 2); if(array[midpoint] == value){ console.log(midpoint); }else if(array[midpoint] < value){ first = midpoint + 1; }else if(array[midpoint] > value){ last = midpoint -1; } } }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

No hay nada que detenga su ciclo, una vez que llega a su declaración if

 if(array[midpoint] == value){ console.log(midpoint); }

Y si la declaración devuelve verdadero ya que ya no regresa, rompe o cambia los valores de primero/último, el ciclo seguirá repitiéndose. Lo más probable es que deba incluir una declaración de ruptura dentro de esa declaración if. Me gusta:

 function binary_search(value, array){ var first = 0; var last = array.length - 1; while(first <= last){ var midpoint = Math.floor((first + last) / 2); if(array[midpoint] == value){ console.log(midpoint); break; }else if(array[midpoint] < value){ first = midpoint + 1; }else if(array[midpoint] > value){ last = midpoint -1; } } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda