You are on page 1of 3

Estructuras de Datos y Algoritmos Tarea 1 Kesline Saintilien A.

2006-2148
1. Seleccione una estructura de datos con la que haya trabajado anteriormente y argumente sobre sus fortalezas y debilidades. Listas Enlazadas una lista enlazada es una de las estructuras de datos fundamentales que consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios. El principal beneficio o fortaleza de las listas enlazadas respecto a los array convencionales es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento. Otras fortalezas de las listas enlazadas es que permiten inserciones y eliminacin de nodos en cualquier punto de la lista en tiempo constante. Los elementos se pueden insertar en una lista indefinidamente mientras que un array tarde o temprano se llenar necesitar ser redimensionado, una costosa operacin que incluso puede no ser posible si la memoria se encuentra fragmentada. Una de las debilidades de las listas enlazadas es el almacenamiento extra necesario para las referencias, que a menudos las hacen poco prcticas para listas de pequeos datos como caracteres o valores booleanos. Tambin puede resultar lento y abusivo el asignar memoria para cada nuevo elemento. Por otra parte, los arrays permiten acceso aleatorio mientras que las listas enlazadas slo permiten acceso secuencial a los elementos 2. De un ejemplo de una aplicacin que requiera contenido algortmico a nivel aplica-tivo, y discuta la funcin de los algoritmos envueltos. congestin de redes La congestin de redes es el fenmeno producido cuando a la red se le ofrece ms trfico del que puede cursar. Puede que los paquetes se reciben demasiado deprisa para ser procesados. Adems puede ser que en la memoria de salida haya demasiados paquetes esperando ser atendidos, entonces se llena memoria de salida. Uno de los algoritmos utilizada para resolver este problema es el algoritmo de descarte de paquetes que es un algoritmo de control de congestin en bucle cerrado. Se basa en que los

nodos descartan paquetes cuando su ocupacin es alta. Para esto los nodos han de conocer sus recursos (CPU y memoria). Hace una asignacin dinmica de los buffers en base a las necesidades de cada lnea. Sin embargo, cada lnea necesita al menos una o ms posiciones de memoria para gestionar informacin relevante. Si a la lnea llegan datos y el buffers de salida de la lnea correspondiente est lleno, se descarta el paquete. 3. (1 punto) Considere el problema de la bsqueda lineal. Cuntos elementos de la secuencia de entrada deben revisarse, en promedio, asumiendo que el elemento buscado puede ser cualquiera? Y en el peor de los casos? Cules son los tiempos de ejecucin en el caso promedio y el peor de los casos? Exprese sus respuestas con la notacin y justique sus respuestas. En promedio deben revisar n/2 elementos de la secuencia de entrada. int busquedaLineal( int arreglo[], int tamano, int clave) { for (int i = 0; i< tamano ; i++) if (arreglo[i] == clave) return i; } En el peor de los casos puede que lo que se est buscando se encuentra en la ltima posicin del arreglo entonces el bucle if necesitara ejecutarse n veces, en este caso podemos decir que el tiempo de ejecucin es proporcional a la longitud del arreglo, teniendo en cuenta tambin los dems tiempos que toman para ejecutar el bucle if hasta n veces. T(N) = C1 (N)+ C2 (N+1)+C3(1) T(N) = C1 (N)+ C2 (N)+ C2 +C3 T(N) = N(C1+ C2)+ C2+C3 T(N) = (N) Este algoritmo crece de forma lineal. 4. (1 punto) El siguiente fragmento implementa la regla de Horner para evaluar un polinomio: P(x) = = a0 + x(a1 + x(a2 + ::: + x(an1 + xan):::)) dados los coeficientes a0; a1 . . . an y un valor para x : (a) y = 0 (b) for i = n downto 0 i. y = ai + x * y

(a) En trminos de la notacin , cul es el tiempo de ejecucin de este fragmento de Cdigo para la regla de Horner? Anlisis: T(N) = C1(N)+C2(N-1) T(N) = C1 (N)+ C2 (N)- C2 T(N) = N(C1+ C2)- C2 T(N) = (N) Este algoritmo es de tipo lineal. 5. (1 punto) Considere el siguiente problema: Se tiene una estructura de datos de acceso Aleatorio A con algunos nmeros entre el 1 y el 500 (|A| j < 500). Ningn nmero aparece dos Veces. Se repite el siguiente conjunto de pasos mientras la estructura no est vaca: (a) Se escoge arbitrariamente un numero A entre el 1 y el 500. (b) Se busca y se elimina el numero A de la estructura. (c) Se busca y se elimina A - 1 de estructura (d) Se busca y se elimina A + 1 de estructura Argumente exhaustivamente acerca de la correccin y la esencia del algoritmo 6. (1 punto) Demuestre que el tiempo de ejecucin de un algoritmo es (g(n)) si y solo si su peor tiempo de ejecucin es O(g(n)) y su mejor tiempo es (g(n)).

Bibliografa http://es.wikipedia.org/wiki/Lista_(inform%C3%A1tica)

You might also like