cortes de luz abril 2024 en la provincia de tungurahua
Búsqueda en vector
1.
2.
3.
4. 15
Dato_buscar
• Guardemos dentro del vector: multiplos de 5 posiciones , los múltiplos de 5.
multiplos
5 10 15 20 25
0 1 2 3 4Índice
Valores
• La variable Dato_buscar contendrá el valor a buscar dentro del arreglo multiplos.
5. • Si el valor a buscar es igual al
valor del arreglo en índice
actual. Debe retornar el
valor del índice. En nuestro
ejemplo el valor que retorna
es 2
multiplos
5 10 15 20 25
0 1 2 3 4Índice
15
Dato_buscar
• Se debe compara la variable Dato_buscar con cada uno de los valores que se
encuentran en el arreglo multiplos.
6. multiplos
5 10 15 20 25
0 1 2 3 4Índice
8
Dato_buscar
• Si al compara todo el
arreglo en ningún caso
encuentra el valor, retorna el
valor -1.
como vemos el valor a buscar
es 8 y no se encuentra en el
arreglo multiplos.
7. • Se crea la clase arreglo_multiplos como se ve en la imagen:
8. • Al correr el programa se vería por consola:
• Ahora se crea el método buscar en la clase arreglos_multiplos
9. • Como el método buscar se creo fuera del método main, se debe instanciar la clase
arreglo_multiplos dentro de main, para llamar el metodo buscar.
arreglo_multiplos todo= new arreglo_multiplos();
int indice= todo.buscar(multiplos, 15);
System.out.println("El indice del valor 15 es: " + indice);
Se llama el metodo buscar y se envían los valores del arreglo y el valor a buscar que
en esta caso es 15.
10.
11. • Al correr el programa saldría por consola:
• Si en lugar de buscar 15 lo cambiamos por 30, un valor que no se encuentra en el
vector:
12. • Al correr el programa saldría por consola:
• Retornaría el valor de -1
13.
14. multiplos
0 1 2 3 4 5 6 7 8 9
Posición
Inicial
30 35 40 45 505 10 15 20 25
• Guardemos dentro del vector: multiplos de 10 posiciones , los múltiplos del 5.
Índice
Posición
Final
posFin= multiplos.length -1posIni= 0
Posición
centro
poscen= (posIni+posFin) / 2
15. • Si el valor a buscar es igual que el valor que se encuentra en la mitad, retorna
indice.
30 35 40 45 505 10 15 20 25
multiplos
15Dato_buscar
0 1 2 3 4 5 6 7 8 9
Posición
centro
if (Dato_buscar == multiplos[poscen ])
{
return poscen;
}
poscen= (posIni+posFin) / 2
16. • Si el valor a buscar no es igual al valor del arreglo en la posición centro, se
pregunta si es menor que la posición centro y si no es menor o igual a posición
inicial de esta forma buscar solo en esta parte del vector
30 35 40 45 505 10 15 20 25
0 1 2 3 4 5 6 7 8 9
‘
posIni= 0 poscen= (posIni+posFin) / 2
posFin= multiplos.length -1
• De lo contrario si no es menor que posición centro buscara después de la mitad,
entre centro + 1 y posición final
30 35 40 45 505 10 15 20 25
0 1 2 3 4 5 6 7 8 9
‘posIni= 0 poscen= (posIni+posFin) / 2 posFin= multiplos.length -1
17.
18.
19. • Al correr el programa saldría por consola cuando el numero a buscar es 15:
20. FLOREZ FERNANDEZ, H. (2012). “Arreglos, Matrices y Colecciones” en
Flórez Fernández, H. Programación Orientada a Objetos usando
JAVA. Ecoe Ediciones. España. P. 75 - 78