Está en la página 1de 6

ANALISIS DE ALGORITMOS

ABRIL 2010

Gua Ejercicios Prueba 1


Preguntas
1.

Interprete el siguiente grfico e indique cual algoritmo es mas eficiente y porque.

2.

Para los siguientes algoritmos indique cual utilizara en funcin a los distintos valores de n.

3.

Qu algoritmo es ms eficiente para resolver un mismo problema, uno que tarda T(n) = 100n2 o uno que tarda T(n) = 5n3 ?

4.

Indicar cual de las afirmaciones son ciertas o no es cierta. 1. n2 O(n3) ___________



DURACIN: PERODOS DE DOS CLASES

PGINA 1 DE 6

ANALISIS DE ALGORITMOS

ABRIL 2010

2. n3 O(n2) ___________ 3. 2n+1 O(2n) ___________


5.

Dado el siguiente programa ZeroCount(A) que recibe un arreglo A de nmeros enteros y devuelve el nmero de ceros que ste contiene. ZeroCount(A) [1] count = 0 [2] for i = 1 to length(A) [3] if A[ i ] = 0 then [4] count = count + 1 [5] return(count)
a. Realice un anlisis lnea a lnea del programa y obtenga el tiempo de ejecucin T(n),

donde n es el largo del arreglo A. Suponga un costo = 1 para cada lnea de cdigo.

b. Demuestre que la complejidad del algoritmo es lineal. c. Calcule el orden de complejidad O(n) del algoritmo. d. Describa el escenario del mejor caso y determine su complejidad asinttica. e. Describa el escenario del peor caso y determine su complejidad asinttica.

6.

Encontrar la eficiencia del siguiente algoritmo: float sum (float *a, const int n) { float s = 0; int i = 0; while (i < n) { s +=a[i]; i++; } return s; }

7. 8.

Implementar una funcin que calcule el n-esimo trmino de la serie: 1,12,123,1234,12345,123456,.... Determine, adems T(n) y O((Tn)) (Ocupar Sumatorias). Determine T(n) y O((Tn)) para el siguiente trozo de cdigo (Ocupar Sumatorias).

PGINA 2 DE 6

DURACIN: PERODOS DE DOS CLASES

ANALISIS DE ALGORITMOS

ABRIL 2010

9.

Cual es el tiempo de ejecucin y el orden de complejidad del siguiente trozo de programa (Ocupar Sumatorias).

OBS: Asumir que el tiempo de ejecucin de subprog es igual a N.

Algoritmos
Disee un algoritmo y encuentre el tiempo de ejecucin mximo en cada caso.
1. 2. 3. 4. 5. 6. 7. 8. 9.
Imprimir los nmeros enteros de 0 a 100. Imprimir los nmeros enteros de 100 a 0. Imprimir los nmeros pares 0 a 100. Imprimir la suma de los primeros 100 nmeros naturales. Imprimir los nmeros impares hasta 100 y contarlos. Imprimir los nmeros impares desde 100 hasta 1 y calcular la suma. Imprimir los nmeros naturales desde 1 hasta un nmero ingresado por teclado. Imprimir y contar los mltiplos de 3 desde 1 hasta 100. Calcular la suma de los nmeros impares entre 0 y 100.

10. Contar e imprimir los mltiplos de 5 que hay entre 1 y 500. 11. Calcular la suma de los cuadrados de los nmeros pares entre 0 y 100. 12. Imprimir y contar los nmeros que son mltiplos de 2 o 3 que hay entre 1 y 100. 13. Imprimir y contar los nmeros que son mltiplos de 2 y 3 que hay entre 1 y 100. 14. Determinar la suma de N nmeros ingresados por teclado. 15. Determinar el promedio de N nmeros ingresados por teclado. 16. Determinar la multiplicacin de dos nmeros enteros mediante sumas sucesivas. 17. Determinar la divisin de dos nmeros enteros mediante restas sucesivas. 18. Determinar el resto de la divisin entera entre dos nmeros enteros, mediante restas sucesivas. 19. Determinar la cantidad de dgitos de un nmero entero positivo. 20. Contar las veces que se repite un dgito d cualquiera en un nmero entero positivo. 21. Determinar si un nmero N entero positivo es primo. 22. Calcular el factorial de un nmero entero positivo. 23. Determinar si M es divisor de N mediante restas sucesivas.
PGINA 3 DE 6

DURACIN: PERODOS DE DOS CLASES

ANALISIS DE ALGORITMOS

ABRIL 2010

24. Calcule e imprima el valor de ab, a:real y b:entero. 25. Averigue mediante restas sucesivas si un nmero n es par o impar. 26. Determinar la suma de los dgitos pares de un nmero entero positivo N. 27. Imprimir, contar y sumar los mltiplos de 2 hasta un nmero introducido por teclado. 28. Para un nmero N menor de 500. Imprimir, sumar y contar los nmeros que estn separados entre si 8 posiciones,
desde ese nmero al 500.

29. Para un nmero N menos de 100. Entregar la suma de los cuadrados de los nmeros que estn separados entre s
cuatro posiciones.

30. Imprimir y contar los nmeros que hay del 1 al 100, excepto los mltiplos de 5, entregar la suma de los mltiplos de
5.

31. Introducir una serie de nmeros. Sumar los mltiplos de 8, determinar cul es el mayor y cuntos nmeros se han
introducido.

32. Imprimir 10 veces la serie de nmeros de 1 a 10. 33. Introducir tantos nmeros como queramos. Decir sin son mayores o menores que un nmero N. 34. Imprimir, contar y sumar los mltiplos de 2 de la serie de nmeros que hay entre dos nmeros N y M, tal que el
segundo sea mayor o igual al primero.

35. Para un nmero N imprimir su tabla de multiplicar. 36. Invertir los dgitos de un nmero entero positivo. 37. Determinar si un nmero entero positivo es palndromo. 38. Identicar si la suma de los dgitos de un nmero entero positivo es par o impar. 39. Determinar e imprimir los primeros N trminos de la serie bonacci. 40. Determinar e imprimir los primeros N trminos primos de la serie bonacci. 41. Simplicar la fraccin N/M, con N y M enteros positivos. 42. Determinar e imprimir el valor de la serie 1 + + 1/3 + + 1/5 + ... + 1/N. 43. Determinar e imprimir el valor de la serie 1 + ! + 1/3! + ! + 1/5! + ... + 1/N! . 44. Determinar e imprimir los valores de la funcin F(x) = x3 - x2 + 1 para valores de x entre 1 y N enteros. 45. Determinar e imprimir los valores de la serie : x - x2/2! + x3/3! - x4/4! + x5/5! - ... + xN/N! 46. Imprima los N primeros nmeros primos. 47. Imprima la suma de los N primeros nmeros primos. 48. Determine todos los factores primos que componen un entero N. 49. Imprima un mensaje que indique si la cantidad de dgitos de un nmero n es par o impar. 50. Determine los N primeros nmeros perfectos. 51. Imprimir cada valor y obtener la suma de los N primeros trminos de la serie: 1, 12, 123, 1234, . . 52. Se ingresan N nmeros desde el teclado, calcular e imprimir el promedio de los datos positivos, y el promedio de
los datos negativos (considere al cero como positivo).

53. Se ingresan N nmeros enteros positivos, imprima aquellos cuyos ltimos k dgitos sean divisibles por 7. 54. Valide el dgito vericador de un rut ingresado por teclado. 55. Se lee un nmero N entero positivo y se desea imprimir los dgitos pares de este. Ejemplo: Si N= 1876543, se
imprimen los dgitos 4, 6 y 8.

56. Calcular la suma de los trminos de la serie + 2/22 + 3/23 + . . . + n/2n 57. Determinar de cuntas maneras posibles un nmero entero positivo N puede descomponerse en la suma de
enteros positivos.

PGINA 4 DE 6

DURACIN: PERODOS DE DOS CLASES

ANALISIS DE ALGORITMOS

ABRIL 2010

58. Multiplique dos nmeros enteros mediante el algoritmo de la multiplicacin rusa. Este algoritmo multiplica por 2
el multiplicando y divide por 2 el multiplicador hasta que el multiplicador toma el valor 1. Despus suma todos los multiplicadores correspondientes a multiplicadores impares. Dicha suma es el resultado del producto de los dos nmeros. Ejemplo: 37 * 12 = 444 ( multiplicador :37, multiplicando:12) 37 12 18 24 9 48 4 96 2 192 1 384 producto = 12 + 48 + 384 = 444

59. Genere e imprima los elementos de la serie. 1, -1, , -1/3, , -1/5,....... 60. Los nmeros de las claves de dos cajas fuertes estn mezcladas en un nmero entero llamado clave maestra.
Determine ambas claves, la primera clave se construye con los dgitos impares de la clave maestra y la segunda con los pares. Ejemplo: Clave maestra = 12345, Clave1= 135, Clave2=24.

61. Se recibe como parmetro una cadena de caracteres. Se pide imprimir el primer carcter, luego los dos primeros,
luego los tres primeros y as sucesivamente hasta imprimir la cadena completa. Ejemplo: Para la cadena HOLA, el procedimiento imprime H HO HOL HOLA 62. Mezcle ordenadamente dos nmeros enteros A y B en un tercer nmero C que contenga el total de dgitos de ambos nmeros. A y B tienen sus dgitos ordenados ascendentemente de derecha a izquierda, el nmero C debe quedar ordenado de igual forma.Ejemplo: A = 7321, B = 87543 se obtiene C = 877543321

63. Determinar el mayor y menor elemento de N datos ingresados por teclado. 64. Escriba el operador BASEB, que recibe un nmero entero en base 10 e imprime su equivalente nmero entero en
una base base b (2..9).

65. Escriba el operador BDIEZ, que recibe un nmero entero en base b y lo transforma a base diez. Puede utilizar la
funcin pot(a,b), que retorna a elevado a b.

66. Disee el operador DIGITO(N,K), que retorna el k-simo dgito de la derecha del entero positivo N. 67. Se recibe un valor entero positivo y se retorna el nmero de dgitos cinco (5) que posee. 68. Determinar la suma de los n primeros trminos de la serie:
valor x real. 4 + x2/3 - x4/5 + x6/7 - x8/9..... evaluada en un

69. Determinar cuntos dgitos distintos tiene un nmero entero positivo cualquiera. 70. Se tiene la funcin mayor3(a,b,c), que retorna el mayor de tres enteros . Se pide crear la funcin mayor5(a,b,c,d,e)
que retorna el mayor de cinco nmeros enteros, usando mayor3. No puede usar sentencias selectivas ni iterativas.

71. Determine usando una funcin si una palabra s es palndroma. 72. Imprimir los elementos de un vector. 73. Invertir los elementos de un vector. 74. Determinar la suma de los elementos de un vector. 75. Determine el mayor y el menor elemento de un vector. 76. Encontrar la posicin de un elemento e en un vector V. 77. Contar en un vector los nmeros iguales a x. 78. Determinar la cantidad de valores mayores que X, en un vector A de N elementos reales. Versin recursiva.
PGINA 5 DE 6

DURACIN: PERODOS DE DOS CLASES

ANALISIS DE ALGORITMOS

ABRIL 2010

79. Disee una proceso que indique si una matriz de orden NxN es simtrica. Una matriz es simtrica si se cumple
que A[i] [ j ] = A[ j ] [i] para todo i,j=1..N.

80. Escriba una funcin que determine si A y B dos matrices de NxM son una espejo de la otra. 81. Disee una funcin que determine el elemento ms cercano al promedio de una matriz M. 82. Sumar los elementos de la triangular superior de una matriz cuadrada M, sin incluir la diagonal principal 83. Encontrar el elemento mayor de la la i de una matriz M. 84. Dada una matriz de orden N, determine el cuociente entre la suma de los elementos de la diagonal principal y la
suma de los elementos de la diagonal secundaria.

85. Disee una funcin que permita buscar y contar la cantidad de veces que se encontr un elemento e, en una
columna j de una matriz A de orden NxM.

PGINA 6 DE 6

DURACIN: PERODOS DE DOS CLASES