You are on page 1of 4

Universidad Nacional del Santa

Facultad de Ingeniera
Escuela Acadmico Profesional de Ingeniera de Sistemas e Informtica

SOLUCIONARIO EXAMEN DE I UNIDAD


ALGORTIMOS Y ESTRUCTURA DE DATOS
Instrucciones.-

En su hoja de respuestas anotar sus apellidos y nombres, as como


su cdigo. Desarrolle de acuerdo a lo solicitado en cada pregunta.
La evaluacin es individual. Duracin del examen 90 minutos.

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.

Algoritmos y Estructuras de Datos 2003-2

Ing. Hugo Caselli Gismondi

Universidad Nacional del Santa


Facultad de Ingeniera
Escuela Acadmico Profesional de Ingeniera de Sistemas e Informtica

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

Algoritmos y Estructuras de Datos 2003-2

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

Ing. Hugo Caselli Gismondi

6
e
1

7
-1

8
M
23

Universidad Nacional del Santa


Facultad de Ingeniera
Escuela Acadmico Profesional de Ingeniera de Sistemas e Informtica

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

Algoritmos y Estructuras de Datos 2003-2

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

Ing. Hugo Caselli Gismondi

Universidad Nacional del Santa


Facultad de Ingeniera
Escuela Acadmico Profesional de Ingeniera de Sistemas e Informtica

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

Chimbote, 09 de marzo del 2004

Algoritmos y Estructuras de Datos 2003-2

Ing. Hugo Caselli Gismondi

You might also like