Busqueda Binara y Secuencial de una matriz
Funcion LLENARVEC(vec,n)
para i <-1 Hasta n Hacer
vec(i) <- azar(1000)+1
FinPara
Fin Funcion
Funcion p<-busqueda_secuencial(vec,n,D)
p<-1
Mientras p<=n y (vec(p)<>D) Hacer
P<-P+1
Fin Mientras
Fin Funcion
Funcion pos <- busq_binaria(vec, n, D)
Definir encontrar como logica
encontrar = falso
p_inicial <- 1 + 1
p_final <- n
pos <- 1
mientras (encontrar = falso) y (p_inicial < p_final) hacer
p_medio <- trunc((p_inicial + p_final)/2)
si vec(p_medio) = D entonces
encontrar <- Verdadero
pos <- p_medio
Sino
si vec(p_medio) < D Entonces
p_inicial <- p_medio + 1
SiNo
p_final <- p_medio - 1
FinSi
FinSi
FinMientras
Fin Funcion
Algoritmo tarea
definir r como entero
Escribir "Digitar 1 para la busqueda secuencial o 2 para la busqueda binaria: "
Leer r
si r = 1
Dimension vec(1000)
Definir a Como Entero
escribir "Ingrese cantidad de posiciones "
leer n
LLENARVEC(vec,n)
Para i<-1 Hasta n Con Paso 1 Hacer
si i<>1 Entonces
Para j<-1 Hasta n Con Paso 1 Hacer
si vec(j) = vec(i) Entonces
elementoRepetido = Verdadero
FinSi
FinPara
FinSi
si elementoRepetido=Falso Entonces
vec(i) = vec(i)
FinSi
elementoRepetido = Falso
Fin Para
para i <- 1 hasta n con paso 1 Hacer
min <- i;
Para j<-i+1 Hasta n Con Paso 1 Hacer
Si vec[j] < vec[min] Entonces
min <- j;
Fin Si
FinPara
aux <- vec[i];
vec[i] <- vec[min];
vec[min] <- aux;
FinPara
para a <- 1 hasta n Hacer
Escribir vec(a)
FinPara
escribir "Ingrese dato que desea buscar "
leer D
p<-busqueda_secuencial(vec,n,D)
si p > n Entonces
Escribir "el dato no se encontro"
SiNo
Escribir "el dato se encontro en la posicion: ",p
FinSi
SiNo
Dimension vec(1000)
Definir a, D, vec Como Entero
escribir "Ingrese cantidad de posiciones "
leer n
LLENARVEC(vec,n)
para a <- 1 hasta n Hacer
Escribir vec(a)
FinPara
escribir "Ingrese dato que desea buscar "
leer D
p <- busq_binaria(vec, n, D)
si p > n Entonces
Escribir "El elemento no se encuentra"
SiNo
Escribir "El dato existe y esta en la posicion: ", p
FinSi
Fin si
FinAlgoritmo