Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Busqueda Binaria
Trabajo Busqueda Binaria
Tarapoto
Facultad de Ingeniería de Sistemas e Informática
Tema:
Búsqueda Binaria
Alumnos:
Profesor:
Curso:
Estructura de datos
TARAPOTO
2022-II
Análisis
Buscar: dato=4 en la siguiente lista:
A 4 6 8 10 12 14 16
i (1) (2) (3) (4) (5) (6) (7)
c = entero((p + u)/2)
¿dato = A(c)?
¿4 = 10?
¿dato > A(c)?
¿ 4 > 10?
Actualizamos: u =c -1
u =4 - 1 =3
A 4 6 8 10 12 14 16
i (1) (2) (3) (4) (5) (6) (7)
c = entero((p + u)/2)
¿dato = A(c)?
¿4 = 6?
¿dato > A(c)?
¿4 > 6?
Actualizamos: U =c -1
U =2 - 1 =1
A 4 6 8 10 12 14 16
i (1) (2) (3) (4) (5) (6) (7)
c = entero((p + u)/2)
¿dato = A(c)?
¿4 = 4?
U= 1
Dato encontrado
DDF:
PRUEBA DE ESCRITORIO:
CODIGO JAVA
//Busqueda binaria
import java.util.Scanner;
public class BusquedaBinaria
{
public static void main (String [] args)
{
Scanner leer = new Scanner (System.in);
System.out.print("Ingresa longitud del vector: ");
int n = leer.nextInt();
int A[] = new int[n];
for (int i = 0; i<n; i++)
{
System.out.print("Ingresar datos: ");
A[i]= leer.nextInt();
}
System.out.print("Ingrese dato a encontrar: ");
int valor = leer.nextInt();
int p = 0;
int u = n - 1;
int c =(p + u)%2;
if(valor!= A[c])
{
do
{
if (valor>A[c])
{
p = c + 1;
c = (p + u) % 2;
}
else
{
u = c - 1;
c = (p + u) % 2;
}
}
while(valor!=A[c] && u >= p);
if(u>=p)
{
System.out.print("Dato encontrado");
}
else
{
System.out.print("Dato no encontrado");
}
}
else
{
System.out.print("Dato encontrado");
}
}
}