Sei sulla pagina 1di 4

UNIDAD 1 PRCTICAS:

Fecha de entrega: Jueves 15 de Septiembre de 2016


2.

Escriba un mtodo que permita intercambiar por rengln los elementos de un arreglo A bidimensional. Los elementos del rengln 1
deben intercambiarse con los del rengln N, los del rengln 2 con los del N 1, y as sucesivamente.
Por ejemplo, si el arreglo A es:
1

-5

87

10

10

87

-5

El resultado de la operacin debe ser:

Calcule la complejidad del algoritmo en notacin asinttica O grande.

UNIDAD 2 PRCTICAS:
Fecha de entrega: Jueves 22 de Septiembre de 2016

3. Escriba un programa que lea un nmero entero mayor o igual que cero en base decimal
y muestre su equivalente en binario de forma recursiva.
Caso Base:

si n = 0 n = 1 entonces el nmero binario equivalente es

el mismo.
Caso recursivo: Si n > 1, entonces se hace la llamada recursiva, envindole
n/2.

Cuando en esas llamadas recursivas se enve un 0 un 1 se mostrar ese valor y a


continuacin se ejecutar la instruccin System.out.print(n % 2); que imprimir el resto
de la divisin en cada momento de la ejecucin. Determine la complejidad del
algoritmo. Ejemplo de una corrida:
Introduzca un nmero decimal > 0: 22
El nmero en binario correspondiente es: 10110

Fecha de entrega: Viernes 23 de Septiembre de 2016

4. Hacer un programa que utilice un mtodo recursivo que dado un arreglo de valores de
tipo entero realice su ordenamiento por seleccin. Este proceso consiste en buscar el
elemento ms pequeo del arreglo. Despus, el elemento ms pequeo se intercambia
por el primer elemento del arreglo. El proceso de repite para el sub-arreglo restante,
comenzando por el segundo elemento del arreglo. Cada pasada en el arreglo da como
resultado a un elemento que se coloca en su propia ubicacin. Este ordenamiento se
desempea de manera similar al ordenamiento de burbuja; para un arreglo de n
elementos, es necesario realizar n 1 pasos, y para cada sub-arreglo deben hacerse n
1 comparaciones para encontrar el valor ms pequeo. Cuando el sub-arreglo que se

est procesando contiene un elemento, el arreglo est ordenado. Escriba el mtodo


recursivo llamado ordenamientoSeleccion, para desarrollar este algoritmo. Haga uso de
la programacin modular y determine la complejidad de cada mtodo que desarrolle.
La prctica siguiente es para realizar en casa y se entregar en la fecha que se
indica a continuacin:

Fecha de entrega: Lunes 26 de Septiembre de 2016

5. De acuerdo a la implementacin vista en clase para calcular la serie de nmeros de


Fibonacci tanto iterativa como recursivamente, probar los dos algoritmos para valores
de n = 20, 30, 40 y 60. Entregar por escrito los resultados del tiempo que tardan cada
uno de ellos en una tabla comparativa como la que se muestra enseguida. Utilizar el
mtodo nanoTime( ) de Java para realizar esta medicin en nanosegundos. Sacar sus
conclusiones:
n
20
30
40
60

Valor obtenido

Tiempo Iterativo

Tiempo Recursivo

Conclusiones:__________ ______.

Fecha de entrega: Jueves 29 de Septiembre de 2016

2.- Escribir un programa en el que dada una serie de palabras imprima todas las subsecuencias posibles, en el orden en que aparecen.
Ejemplo:
Dada la serie: casa rbol gol rojo sol
Imprima: casa rbol gol rojo sol

rbol gol rojo sol


gol rojo sol
rojo sol
sol
Implemente una solucin recursiva y una no recursiva. Determine la
complejidad de sus dos algoritmos y realice sus comentarios.

6. Un palndromo es una cadena que dice lo mismo si se lee hacia delante que si se lee
hacia atrs. Algunos ejemplos de palndromos son radar, ojo, oso, Dbale arroz
a la zorra el Abad, Anita lava la tina. Escriba un programa que utilice un mtodo
recursivo llamado Palindromo que devuelva 1 si la cadena almacenada en el arreglo es
un palndromo, y 0 si no lo es. El mtodo debe ignorar los espacios y la puntuacin en
la cadena. Determine su complejidad.

Fecha de entrega: Viernes 30 de Septiembre de 2016

7. Escribir un programa que utilice un algoritmo recursivo que sume los enteros positivos
pares desde n hasta 2. El programa debe solicitar el valor de n y verificar que si n es
impar se imprima un mensaje de error y d oportunidad a que nuevamente el usuario
proporcione el valor. Indique la complejidad de su algoritmo.
8. Escriba un mtodo recursivo llamado minimoRecursivo, que tome un arreglo de enteros
y el tamao del arreglo como argumentos y que devuelva el elemento ms pequeo del
arreglo. El mtodo debe detener el procesamiento y regresar, cuando reciba un arreglo
de un elemento.