Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
entero F(n)
Inicio
Si (n <= 1)
Entonces
Retorna 1
Caso Contrario
Inicio
para (i 1; i <= n; i++)
Inicio
x 1
Mientras (x < n) hacer
Inicio
x x*2
Fin
Fin
Retorna F(n/2)+F(n/2)
Fin
Fin
3. Diseñar un algoritmo para ordenar los elementos de una matriz cuadrada utilizando el algoritmo de selección
directa. Luego determinar su complejidad Θ. (vea el ejemplo). (7 puntos)
5 8 6 13 1 2 3 3
14 1 3 3 4 5 5 5
4 6 5 5 6 6 7 8
7 10 12 2 10 12 13 14
1. T(n) = T(n-1) + n -1
T(n-1) = T(n-1-1) + (n-1) -1
T(n-1) = T(n-2) +(n-2)
Reemplazando en 1 tenemos:
2. T(n) = T(n-2) + (n-2) + (n-1)
T(n-2) = T(n-2-1) + (n-2) -1
T(n-2) = T(n-3) +(n-3)
Reemplazando en 2 tenemos:
3. T(n) = T(n-3) +(n-3)+(n-2)+(n-1)
Resolviendo tenemos:
𝑛2 𝑛
𝑇(𝑛) = 2 + −
2 2
entero F(n)
Inicio
Si (n <= 1)
Entonces
Retorna 1
Caso Contrario
Inicio
para (i 1; i <= n; i++)
Inicio
x 1
Mientras (x < n) hacer
Inicio
x x*2
Fin
Fin
Retorna F(n/2)+F(n/2)
Fin
Fin
La ecuación de recurrencia será:
1 𝑠𝑖 𝑛 ≤ 1
𝑇(𝑛) = { 𝑛
2𝑇 ( ) + 𝑛 log 𝑛 + 1 𝑠𝑖 𝑛 > 1
2
CASO 2:
𝑑 = log 2 2 = 1
3. Diseñar un algoritmo para ordenar los elementos de una matriz cuadrada utilizando el algoritmo de
selección directa. Luego determinar su complejidad Θ. (vea el ejemplo). (7 puntos)
5 8 6 13 1 2 3 3
14 1 3 3 4 5 5 5
4 6 5 5 6 6 7 8
7 10 12 2 10 12 13 14
OrdenarMatriz(Matriz,n)
Inicio
{pasar matriz a un vector}
k=1
Para(i = 1; i <= n2 ; i++)
Para(j=1; j<= n2; j++)
Inicio
Vector[k] = Matriz[i,j]
K++
Fin
{ordenar el vector mediante seleccion}
Fin
K=1
Para(i = 1; i <= n2 ; i++)
Para(j=1; j<= n2; j++)
Inicio
Matriz[i,j] = Vector[k]
K++
Fin
Fin
Por consiguiente
T(n) es O(n4)