Parcial1 Flashcards

1
Q

¿Qué es un algoritmo?

A

Una serie finita de instrucciones no ambiguas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Para qué se usan las relaciones de recurrencia?

A

Para expresar la complejidad temporal de algoritmos recursivos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué indica la notación Θ (Theta)?

A

Cota ajustada de complejidad: acota superior e inferiormente el tiempo de ejecución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Cuándo se usa el Teorema Maestro?

A

Para resolver relaciones de recurrencia de algoritmos divide y vencerás.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué es la complejidad espacial?

A

Se refiere a la cantidad de memoria adicional que necesita el algoritmo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Cuál es la complejidad de Mergesort?

A

Θ(n log n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Cuál es la ecuación de recurrencia de Mergesort?

A

T(n) = n + 2T(n/2)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Qué técnica usa Mergesort?

A

Divide y vencerás.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué partes tiene el esquema Divide y Vencerás?

A

División, resolución recursiva, combinación.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es el caso base en un algoritmo recursivo?

A

Situación más simple que se resuelve directamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué representa la notación O (grande)?

A

Una cota superior asintótica del tiempo de ejecución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cuándo se considera que un algoritmo es eficiente?

A

Cuando tiene una complejidad polinómica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Qué es la función merge en Mergesort?

A

Fusión de dos listas ordenadas en una lista ordenada.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

¿Qué complejidad tiene la función merge?

A

Θ(n), donde n es la suma de longitudes de las dos listas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

¿Qué es is_simple en el esquema Divide y Vencerás?

A

Condición que indica si un problema es lo bastante pequeño para resolverse sin dividir.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

¿Qué significa que los subproblemas sean del mismo tamaño?

A

Permite aplicar directamente el Teorema Maestro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

¿Qué representa el coste g(n) en una relación de recurrencia?

A

El tiempo de ejecución en dividir y combinar sin contar llamadas recursivas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué sucede si g(n) ∈ Θ(n)?

A

La complejidad total puede ser Θ(n log n) si los subproblemas están balanceados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

¿Qué significa a = b^k en el Teorema Maestro?

A

Implica una complejidad de Θ(n^k log n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

¿Qué es Quicksort?

A

Algoritmo de ordenación basado en Divide y Vencerás que usa un pivote.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

¿Cuándo tiene Quicksort su peor caso?

A

Cuando el pivote divide muy desbalanceadamente.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

¿En qué caso Quicksort tiene mejor eficiencia?

A

Cuando el pivote es la mediana.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

¿Qué complejidad tiene Quicksort en el mejor caso?

A

Θ(n log n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

¿Complejidad de quicksort en el peor caso?

A

Θ(n^2).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

¿Qué técnica usa Quicksort para dividir?

A

Seleccionar un pivote y particionar el vector.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

¿Qué ocurre si no hay combinación en Divide y Vencerás?

A

Se omite el paso final como en Quicksort.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

¿Cuál es el coste del algoritmo de las Torres de Hanoi?

A

Θ(2^n).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

¿Qué ecuación de recurrencia describe las Torres de Hanoi?

A

T(n) = 1 + 2T(n - 1)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

¿Por qué no se puede usar el Teorema Maestro con Hanoi?

A

Porque el tamaño de los subproblemas se reduce en n - 1, no en fracciones.

30
Q

¿Cuál es la complejidad espacial de Mergesort sin contar la pila?

A

Θ(n), debido a la memoria auxiliar para merge.

31
Q

¿Cuál es la complejidad de la pila de recursión en Mergesort?

A

Θ(log n).

32
Q

¿Qué representa la función merge en Mergesort?

A

Fusiona dos listas ordenadas en una sola lista ordenada.

33
Q

¿Cuál es la complejidad temporal de Mergesort?

A

Θ(n log n).

34
Q

¿Qué ocurre si los subproblemas en Divide y Vencerás no son del mismo tamaño?

A

La eficiencia puede degradarse y no se puede aplicar directamente el Teorema Maestro.

35
Q

¿Cuál es la ecuación de recurrencia asociada a Mergesort?

A

T(n) = n + 2T(n/2)

36
Q

¿Cuál es el coste de memoria auxiliar en Mergesort sin contar la pila?

37
Q

¿Qué complejidad espacial tiene la pila de recursión en Mergesort?

38
Q

¿Qué condiciones deben cumplirse para aplicar el Teorema Maestro?

A

Subproblemas del mismo tamaño y sin solapamiento.

39
Q

¿Cuál es la complejidad del algoritmo de las Torres de Hanoi?

40
Q

¿Qué relación de recurrencia tiene el problema de Hanoi?

A

T(n) = 1 + 2T(n - 1)

41
Q

¿Por qué no se puede aplicar el Teorema Maestro a las Torres de Hanoi?

A

Porque la reducción de tamaño es lineal, no fraccionaria.

42
Q

¿Qué significa el término g(n) en la recurrencia T(n) = aT(n/b) + g(n)?

A

Es el coste de dividir y combinar sin contar las llamadas recursivas.

43
Q

¿Qué valor de g(n) produce complejidad Θ(n log n) en el Teorema Maestro?

A

g(n) ∈ Θ(n)

44
Q

¿Qué sucede si g(n) ∈ Θ(n^k) con k > log_b a en el Teorema Maestro?

A

La complejidad es Θ(n^k)

45
Q

¿Qué sucede si g(n) ∈ Θ(n^k) con k < log_b a en el Teorema Maestro?

A

La complejidad es Θ(n^log_b a)

46
Q

¿Qué sucede si g(n) ∈ Θ(n^k) con k = log_b a en el Teorema Maestro?

A

La complejidad es Θ(n^k log n)

47
Q

¿Qué técnica de diseño usa el algoritmo Quicksort?

A

Divide y vencerás

48
Q

¿Cuándo tiene Quicksort peor rendimiento?

A

Cuando el pivote divide los datos muy desigualmente.

49
Q

¿Qué ocurre si Quicksort elige como pivote la mediana del vector?

A

Garantiza divisiones equilibradas y mejora el peor caso a Θ(n log n).

50
Q

¿En qué consiste el paso de división en Quicksort?

A

Separar el vector en elementos menores y mayores que el pivote.

51
Q

¿Cuál es la complejidad del paso de partición de Quicksort?

52
Q

¿Qué ocurre si el vector de entrada ya está ordenado en Quicksort?

A

Puede generar el peor caso si se elige mal el pivote.

53
Q

¿Qué paso no es necesario en Quicksort respecto al esquema clásico de Divide y Vencerás?

A

La combinación de subresultados.

54
Q

¿Qué función cumple is_simple(p) en el esquema Divide y Vencerás?

A

Determina si el problema es suficientemente pequeño para no dividirlo.

55
Q

¿Qué hace la función combine(s) en el esquema Divide y Vencerás?

A

Fusiona las soluciones parciales de los subproblemas.

56
Q

¿Qué representa a en la ecuación de recurrencia T(n) = aT(n/b) + g(n)?

A

El número de subproblemas en los que se divide el problema.

57
Q

¿Qué representa b en la ecuación de recurrencia T(n) = aT(n/b) + g(n)?

A

La fracción del tamaño del problema original que tiene cada subproblema.

58
Q

¿Qué significa la notación Θ?

A

Cota ajustada de complejidad: crece al mismo ritmo superior e inferior.

59
Q

¿Qué significa la notación O (grande)?

A

Cota superior del crecimiento de una función.

60
Q

¿Qué significa la notación Ω?

A

Cota inferior del crecimiento de una función.

61
Q

¿Qué mide la complejidad espacial de un algoritmo?

A

La cantidad de memoria adicional necesaria durante la ejecución.

62
Q

¿Qué mide la complejidad temporal de un algoritmo?

A

El número de operaciones elementales ejecutadas según el tamaño de entrada.

63
Q

¿Cuál es el coste exacto del algoritmo Merge?

A

Θ(n), siendo n el número total de elementos a fusionar.

64
Q

¿Qué ventaja aporta usar .reserve() en v_merged.reserve(last - first) en Merge?

A

Evita realocaciones dinámicas y mejora la eficiencia.

65
Q

¿Qué tres fases incluye un algoritmo de Divide y Vencerás?

A

Dividir, resolver recursivamente, combinar.

66
Q

¿Qué caracteriza a un problema apto para Divide y Vencerás?

A

Puede descomponerse en subproblemas más pequeños independientes.

67
Q

¿Cuándo es útil usar relaciones de recurrencia?

A

Para analizar la eficiencia de algoritmos recursivos.

68
Q

¿Qué representa n en la ecuación de recurrencia T(n) = n + 2T(n/2)?

A

El coste de dividir y combinar.

69
Q

¿Qué define la eficiencia de un algoritmo?

A

Su comportamiento para entradas de gran tamaño.

70
Q

¿Qué ocurre si los subproblemas contienen solapamientos?

A

No se puede aplicar directamente el Teorema Maestro.