Вы находитесь на странице: 1из 11

Comenzado: 8 jul en 12:10

Pregunta 1 12 ptos.

1 of 11
public static void bubbleSort(int[] a){

boolean swapped;

do{

swapped = false;

for (int i = 1; i < a.length; i++) {

if (a[i-1] > a[i]){

int temp = a[i-1];

a[i-1] = a[i];

a[i] = temp;

swapped = true;

}while(swapped);

La complejidad en caso promedio (cualquier permutación de a es igualmente probable)


del anterior algoritmo es:

ϴ(2^n)

ϴ(n^2)

ϴ(n^3)

ϴ(n^log(n))

ϴ(n)

Pregunta 2 12 ptos.

Observe el grafo a continuación:

2 of 11
Ejecute el algoritmo de Dijkstra sobre el grafo, partiendo del nodo A y complete las
distancias mínimas a cada nodo.

3 of 11
Pregunta 3 12 ptos.

La programación dinámica es una técnica bastante amplia para atacar problemas, que
usualmente implican maximización.
¿Cuáles de las siguientes afirmaciones acerca de la programación dinámica son
verdaderas?

Al igual que en dividir y vencer, se parte un problema grande en problemas pequeños.

Es usual necesitar memoria adicional para almacenar las soluciones.

Se llama dinámica porque necesita grupos dinámicos de programación

Su implementación es usualmente iterativa

Se atacan problemas partiendo de los más sencillos a los más complejos

Es una solución polinomial a problemas NP-completos

Su implementación es usualmente recursiva.

Usualmente parte de una definición recursiva

Pregunta 4 12 ptos.

Un algoritmo ϴ(n) es en general más eficiente que un algoritmo ϴ(n^2).

True

False

Pregunta 5 12 ptos.

Observe el grafo a continuación:

4 of 11
La ruta de menor costo del nodo A al nodo I es:

A-C-D-E-I

A-B-H-I

A-D-E-I

No existe una ruta del nodo A al nodo I.

A-D-E-G-I

Pregunta 6 12 ptos.

¿Cuáles de los siguientes algoritmos están basados en la técnica Dividir y Vencer?

Algoritmo de Strassen

Algoritmo de Dijkstra

Algoritmo de Ford-Fulkerson

Ordenamiento por inserción

Algoritmo de Karatsuba

Ordenamiento por mezcla

5 of 11
Pregunta 7 12 ptos.

Observe el grafo a continuación:

Indique si es verdadera o falsa la siguiente afirmación:

"Existen dos rutas óptimas (de menor costo) diferentes del nodo A al nodo H."

True

False

Pregunta 8 12 ptos.

Juan tiene n canciones en formato MP3 en su computador. Los tamaños de las


canciones, en bytes, son d_1, d_2, d_3, ..., d_n. Juan quiere copiar algunas de sus
canciones a un CD de C MB de manera tal que se desperdicie la menor cantidad posible
de espacio en él. No es posible copiar una canción parcialmente, esto es, una canción se
copia al disco completa o no se copia.

¿Qué canciones debe copiar Juan?

El siguiente programa puede resolverse eficientemente con un algoritmo:

6 of 11
de fuerza bruta

recursivo sin memoria

de programación dinámica

ávaro

dividir y vencer

Pregunta 9 12 ptos.

Problema de la mochila.

Juanita está regresando de viaje desde Miami, y ha comprado un montón de artículos


(chucherías) que quiere vender cuando llegue a Colombia. Sin embargo al confirmar su
tiquete le advierten que puede llevar un máximo peso W sin pagar sobreequipaje.
¿Cuáles artículos debe llevar?
Usted va a ayudar a Juanita con un algoritmo de programación dinámica, y para esto
guarda el peso de los artículos en un arreglo P[0..n-1] y sus respectivas ganancias en un
arreglo G[0..n-1].
Además define la siguiente función recursiva mG:

mG(w, i): la máxima ganancia que Juanita puede llevar sin pasarse del límite de peso
w, usando los artículos 0, 1, ... i

Tenga en cuenta que Juanita sólo tiene uno de cada artículo.


¿Cuáles de las afirmaciones a continuación son verdaderas? (Seleccione todas las
respuestas válidas).

La función cumple la relación de recurrencia:


mG( w, i) = max( P[i] + mG( w - G[i], i-1), mG( w, i -1 ) )
para i en [1, n-1], w en [1,W]

mG(0 , w) = 0, para w en [1,W]

La función cumple la relación de recurrencia


mG( w, i) = max( mG( w - P[i], i-1), mG( w, i -1 ) )
para i en [1,n-1], w en [1,W]

La solución S es: S = mG(W, n-1)

7 of 11
mG(i, 0) = 0, para: i en [0,n-1]

La función cumple la relación de recurrencia:


mG(w, i) = max( G[i] + mG( w - P[i], i-1), mG( w, i -1 ) )
para i en [1, n-1], w en [1,W]

Pregunta 10 12 ptos.

public static void bubbleSort(int[] a){

boolean swapped;

do{

swapped = false;

for (int i = 1; i < a.length; i++) {

if (a[i-1] > a[i]){

int temp = a[i-1];

a[i-1] = a[i];

a[i] = temp;

swapped = true;

}while(swapped);

La complejidad en peor caso del anterior algoritmo es:

ϴ(n^log(n))

ϴ(n^2)

ϴ(n)

8 of 11
ϴ(n^3)

ϴ(2^n)

Evaluación guardada en 12:46

9 of 11
10 of 11
11 of 11

Вам также может понравиться