Gracias por el aporte. Currazo en la explicación y la presentación. Recién estoy empezando en esto. Estuve viendo un poco el código y comparándolo con un ejercicio de clase. Creo que sé como hacer para evitar el uso de 'break' y devolver "El número no está en el arreglo". Si veis algo en el código que sea mejorable, os leo. int numeros [ ] = {2,5,6,7,8,9,10,11,12,15,18,19,20,30,33,35,36,39,40,42,50}; int num_buscado = 23; int inferior = 0; int superior = numeros.length -1; int centro = (superior + inferior)/2;
while (inferior numeros [centro]) { inferior = centro +1;
} else if (num_buscado < numeros [centro]) { superior = centro -1; }
} if (num_buscado==numeros[centro]) { System.out.println("El número se encuentra en la posición: " + centro); } else { System.out.println("El número no está en el arreglo."); }
También como consejo para mejorar el código puedes evitar asignarle el valor buscado dentro del código y pedirlo mediante un Scanner, así evitas la pereza de estar cambiando el número buscado dentro del código. Yo lo hice así: int NumBuscado; System.out.println("INGRESE EL VALOR QUE DESEA BUSCAR: "); NumBuscado = entrada.nextInt();
while (inferior superior) { System.out.println("¡¡ EL NÚMERO NO EXISTE EN EL ARREGLO !!"); } } } }
Muchas gracias amigo, te ganaste mi sub y mi like, espero que tus videos se vuelvan mas populares ys que las estructuras de datos son primordiales para las ciencias de computación.
A mi me sirvio agregar esto: if(montos[centro]== numero){ System.out.println("El numero encontrado esta en la posicion: "+centro); break; } else if(numero < montos[centro]){ superior = centro - 1; } else if(numero > montos[centro]){ inferior = centro + 1; } if(inferior > superior){ System.out.println("El número no existe en el arreglo"); }
A mi me sirvio agregar esto: if(montos[centro]== numero){ System.out.println("El numero encontrado esta en la posicion: "+centro); break; } else if(numero < montos[centro]){ superior = centro - 1; } else if(numero > montos[centro]){ inferior = centro + 1; } if(inferior > superior){ System.out.println("El número no existe en el arreglo"); }
Te luciste con esa explicación hermano programador, muchas gracias!!
Muchísimas gracias, después de investigar en 10 págs sin encontrar nada, en este video pude hacer todo sobre esta busqueda!
videazo me ha servido mucho en 2023 donde mi profesora no es capaz de enseñar bien en un mes entero
Muchas gracias por tomarte el tiempo de explicar el contenido! Me sirvió bastante.
Muchas gracias por el tutorial. Una pequeña corrección en la explicación 31 no es mayor a 37, igual se entiende la idea. ¡Saludos!
.
Gracias por la explicación muy buena.
Gracias por el aporte. Currazo en la explicación y la presentación. Recién estoy empezando en esto. Estuve viendo un poco el código y comparándolo con un ejercicio de clase. Creo que sé como hacer para evitar el uso de 'break' y devolver "El número no está en el arreglo". Si veis algo en el código que sea mejorable, os leo.
int numeros [ ] = {2,5,6,7,8,9,10,11,12,15,18,19,20,30,33,35,36,39,40,42,50};
int num_buscado = 23;
int inferior = 0;
int superior = numeros.length -1;
int centro = (superior + inferior)/2;
while (inferior numeros [centro])
{
inferior = centro +1;
}
else if (num_buscado < numeros [centro])
{
superior = centro -1;
}
}
if (num_buscado==numeros[centro])
{
System.out.println("El número se encuentra en la posición: " + centro);
}
else
{
System.out.println("El número no está en el arreglo.");
}
También como consejo para mejorar el código puedes evitar asignarle el valor buscado dentro del código y pedirlo mediante un Scanner, así evitas la pereza de estar cambiando el número buscado dentro del código. Yo lo hice así:
int NumBuscado;
System.out.println("INGRESE EL VALOR QUE DESEA BUSCAR: ");
NumBuscado = entrada.nextInt();
while (inferior superior) {
System.out.println("¡¡ EL NÚMERO NO EXISTE EN EL ARREGLO !!");
}
}
}
}
Muchas gracias amigo, te ganaste mi sub y mi like, espero que tus videos se vuelvan mas populares ys que las estructuras de datos son primordiales para las ciencias de computación.
muy bien explicado!!! Muchas gracias
Eres un grande brooo, me suscribo.
como se hace para que me diga de todos los resultados que encontro iguales?
me refiero, que tal si hay 2 veces el numero 5 en el arreglo
en que programa hicistes las diaposivas?
Muchas gracias, me sirvió mucho tu vídeo
¿Cómo es que 31 es mayor a 37? Ver en 07:24
muchas gracias mas la explicación sencillo no como otros que me ponen nose que codigos jeeje
muchas gracias
Y si el número no está en el arreglo?
A mi me sirvio agregar esto:
if(montos[centro]== numero){
System.out.println("El numero encontrado esta en la posicion: "+centro);
break;
}
else if(numero < montos[centro]){
superior = centro - 1;
}
else if(numero > montos[centro]){
inferior = centro + 1;
}
if(inferior > superior){
System.out.println("El número no existe en el arreglo");
}
excelente muy entendible, aunque hubiera sido mas enriquecedor con POO
¿Y como hago para decir que el numero no está en el arreglo?
A mi me sirvio agregar esto:
if(montos[centro]== numero){
System.out.println("El numero encontrado esta en la posicion: "+centro);
break;
}
else if(numero < montos[centro]){
superior = centro - 1;
}
else if(numero > montos[centro]){
inferior = centro + 1;
}
if(inferior > superior){
System.out.println("El número no existe en el arreglo");
}
7:28 "31 es mayor a 37" xd, dislike.
Que payaso y sangrón