Professional Documents
Culture Documents
Facultad de Ingeniera
Escuela Acadmico Profesional de Ingeniera de Sistemas e Informtica
1.- Se tiene el siguiente arreglo ordenado A[n] = { 2, 3, 7, 9, 11, 15, 18, 21}
Desarrolle la prueba de escritorio para el siguiente algoritmo denominado divide y
vencers, prubelo cuando X = 3, 15 y 8, verifique que cumple para cada caso, de
ser necesario corrjalo, luego compare los resultados y diga si es mas conveniente
que una bsqueda lineal. Explique que hace el algoritmo. (5 puntos)
INICIO
Leer X
i1; jn-1;
m (i+j)\2 /* \ divisin entera */
Mientras (a[m] <> X y i<j ) hacer
Si X < a[m] entonces
j m-1
caso contrario
i m+1
fin_si
m (i+j)\2 ;
Fin_mientras
Si i >= j entonces
Escribir Dato buscado no se encuentra
Caso contrario
/* Falta agregar */
Escribir Dato fue encontrado en posicin , m;
Fin_si
FIN
SOLUCION:
a[8] =
11
15
18
21
Prueba de Escritorio:
X n i J m
3 8 1 7 4
3 2
X
8
n
8
i
1
3
J
7
3
m
4
2
a[m]
9
3
X
15
n
8
i
1
5
J
7
m
4
6
a[m]
9
15
a[m]
9
3
7
Se nota que es ms conveniente que una bsqueda lineal, toda vez que se
demuestra que se puede encontrar los datos con un menor numero de iteraciones,
salvo los nmeros ms pequeos que en algunos casos requieren ms de una
iteracin.
2.- Escribir el algoritmo (pseudo cdigo) que permita insertar la letra n en la lista
enlazada que se muestra a continuacin, la insercin debe realizarse teniendo en
cuenta mantener el orden alfabtico. Realice la prueba de escritorio sabiendo que
INICIO = 4 y DISPO = 3 (5 puntos)
ndice
1
DATO
G
ENLACE 5
2
p
-1
3
7
4
b
6
5
k
8
6
e
1
8
M
2
-1
SOLUCION:
Prueba de Escritorio:
START 4; DISPO
Leer LETRA
3;
INICIO RECORRIDO
PTR START
Mientras PTR <> -1 hacer
Si LETRA < DATO[PTR] entonces
HACER INSERTAR(PTR, ANT)
Caso contrario
ANT PTR
PTR ENLACE[PTR]
Fin_si
Fin_mientras
FIN
INICIO INSERTAR(PTR, ANT)
IF DISPO = -1 entonces
Escribir Lista llena
Caso contrario
NUEVO DISPO
DISPO ENLACE[DISPO]
DATO[NUEVO] LETRA;
ENLACE[NUEVO] PTR
ENLACE[ANT] NUEVO
Fin_si
FIN
Prueba de Escritorio:
START DISPO LETRA
4
3
n
NUEVO = 3;
DISPO = 7;
ndice
DATO
ENLACE
1
G
5
PTR
4
6
1
5
8
2
DATO[PTR]
b
e
g
k
m
p
DATO[3] = n ;
2
P
-1
3
n
7 2
4
b
6
ENLACE[PTR]
6
1
5
8
2
ENLACE[3] = 2
5
k
8
6
e
1
7
-1
8
M
23
3.- Usando las operaciones abstractas de LISTA escribir un algoritmo (pseudo cdigo)
tal que, dadas dos listas LA:={a_1,a_2,...,a_N}, LB:={b_1,b_2,...,b_M} cree una
lista L con N*M valores as:
L = {a_1*{todos los elementos de LB},
a_2*{todos los elementos de LB}, ....,
a_N*{todos los elementos de LB}}
es decir:
L={a_1*b_1,a_1*b_2,...,a_1*b_M,a_2*b_1,a_2*b_2,...,a_2*b_M,...,
a_N*b_1,a_N*b_2,...,a_N*b_M}.
Por ejemplo, si LA:={1,3,5,0}, LB:={1,2,3,4} entonces el algoritmo debe retornar
L:={1,2,3,4,3,6,9,12,5,10,15,20,0,0,0,0}.
(5 puntos)
SOLUCION:
c 0;
n 4;
LA[n] = { 1, 3, 5, 0};
LB[m] = { 1, 3, 5, 0}
INICIO
Desde i 1 hasta n hacer
Desde j 1 hasta m hacer
c c + 1;
L[c] LA[i] * LB[j];
Escribir L[c];
Fin_desde_i
Fin_desde_j
FIN
Prueba de Escritorio:
n m
i j LA[i]
1
4 4 1 1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
LB[j]
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
c
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
L[c]
1
2
3
4
3
6
9
12
5
10
15
20
0
0
0
0
4.- Escriba el algoritmo (pseudo cdigo) que implemente el ordenamiento por insercin
directa en forma descendente, y efecte la prueba de escritorio para los siguientes
datos = {1, 9, 3, 7, 5, 6, 2}
(5 puntos)
SOLUCION:
Inicio
DATOS[0] 999
Se inicializa bandera
Se inicializa tamao arreglo e inicio inspeccin
N7; K2
Repetir hasta K=N
TEMPDATOS[K]
PTRK-1
Repetir Mientras TEMP>DATOS[PTR]
DATOS[PTR+1] DATOS[PTR]
PTR PTR-1
Fin repetir mientras
DATOS[PTR+1] TEMP
K K+1
Fin repetir hasta
Fin
Prueba de Escritorio:
DATOS[0]
999
a
K
2
TEMP
9
1
2
3
4
5
6
7
Datos
1
9
3
7
5
6
2
N
7
a
9
1
3
7
5
6
2
b
9
3
1
7
5
6
2
PTR
1
0
2
1
3
2
1
4
3
2
5
4
3
2
6
5
c
9
7
3
1
5
6
2
DATOS[PTR] DATOS[PTR+1]
1
1
9
999
1
1
3
9
1
1
3
3
7
9
1
1
3
3
5
7
1
1
3
3
5
5
6
7
1
1
2
3
d
e
f
9
9
9
7
7
7
6
6
5
5
5
3
3
3
1
2
1
6
1
2
2