

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: fundamentos de analisis de algoritmos, Profesor: Teresa Santos Rodriguez, Carrera: Ingeniería Informática, Universidad: UHU
Tipo: Exámenes
Subido el 31/05/2013
2.7
(3)5 documentos
1 / 3
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


Departamento de Tecnologías de la Información
FUNDAMENTOS DE ANÁLISIS DE ALGORITMOS GRADO EN INGENIERÍA INFORMÁTICA. La Rábida 10 de junio del 2013
EJERCICIO 1 PUNTOS: 1
Responder brevemente las siguientes cuestiones justificando las respuestas (0,5 puntos cada respuesta correcta). (a) Dos algoritmos, A y B, resuelven un problema mediante las funciones TA(n)=100n y TB(n)=2n 2 , respectivamente. ¿Cuál deberíamos usar? ¿Cuándo uno de ellos, y cuál, es el doble de rápido y, cuándo 20 veces más rápido?
Usando las definiciones de notación asintótica y corroborándolo con la regla del límite, demostrar si son verdaderas o falsas las siguientes afirmaciones: (0,25 ptos cada respuesta correcta) (a) (n+1)! ∈ (^) O(3(n!)) (b) n 2 ∈ Ω ( (n+1) 2 ) (c) (^) f ( n ) ∈ (^) O( n ) ⇒ 2 f^ ( n )^ ∈ O ( 2 n ) (d) (n+1)! ∈ Ω (n!)
Estudiar la complejidad del algoritmo de ordenación por Selección modificado (de forma que se intercambien los elementos únicamente si son distintos) para el caso medio. Decidir si es rentable o no la modificación.
procedimiento SelectionModif (a:vector; primero,ultimo: int); para i=primero hasta ultimo-1 hacer posmin = PosMinimo(a,i,ultimo); si a[i] ≠ a[ posmin ] entonces Intercambia(a, i, posmin ); fsi ; fpara fprocedimiento SelectionModif
En el algoritmo anterior se utiliza una función que calcula la posición del elemento mínimo de un subvector :
Int función PosMinimo (a:vector;primero,ultimo:int); /* devuelve la posición del mínimo elemento de a[primero..ultimo] */ pmin=primero; para i=primero+1 hasta ultimo hacer si a[i] < a[pmin] entonces pmin = i fsi ; fpara return pmin; ffuncion PosMinimo;
También se utiliza el procedimiento Intercambia para intercambiar dos elementos de un vector:
función Intercambia (a:vector ; i , j :int ); /* intercambia a[i] con a[j] */ aux = a[i] ; a[i] = a[j] ; a[j] = aux; ffuncion Intercambia;
Departamento de Tecnologías de la Información
FUNDAMENTOS DE ANÁLISIS DE ALGORITMOS GRADO EN INGENIERÍA INFORMÁTICA. La Rábida 10 de junio del 2013
Se realiza una variante de los números de Fibonacci que denominaremos “ Nacci ” cuya ecuación recurrente es:
Nacci (n) =
a) Escribe dos posibles implementaciones para el cálculo del n-ésimo número de Nacci usando:
Para resolver cierto problema se dispone de un algoritmo trivial cuyo tiempo de ejecución t(n) (para problemas de tamaño n) es cuadrático (t(n)∈Θ(n^2 )). Se ha encontrado una estrategia que consigue una reducción del orden al aplicar divide y vencerás con 3 subproblemas de tamaño n /2, y tiempo de dividir y combinar en O( n ).
Resolver la siguiente ecuación de recurrencia:
2T(n)= 6T(n/2) + 4T(n/4) + 2n, con T(1), T(2)=
a) Especificar el algoritmo de ordenación Mergesort. b) Realizar la traza para ordenar el siguiente vector utilizando Mergesort A = { 9, 1, 3, 5, 0, 4, 2, 6, 8, 7}.
1 Si n = 1 3 Si n = 2 3/2 Nacci (n-1) + Nacci (n-2) En otro caso