Entradas

Mostrando entradas de 2012

Listas Simples

Imagen
Es un conjunto de elementos de un tipo dado que se encuentran ordenados y pueden variar en número. Esta es una definición general, que incluye los ficheros y vectores. Las entradas de una guía o directorio telefónico, por ejemplo, están en líneas sucesivas, excepto en las partes superior e inferior de cada columna. Una lista lineal se almacena en la memoria principal de una computadora en posiciones sucesivas de memoria; cuando se almacenan en cinta magnética, los elementos sucesivos se presentan en sucesión en la cinta. Esta asignación de memoria se denomina almacenamiento secuencial. Posteriormente, se verá que existe otro tipo de almacenamiento denominado encadenado o enlazado. Una lista lineal se almacena en la memoria de la computadora en posiciones sucesivas o adyacentes y se procesa como un array unidimensional. En este caso, el acceso a cualquier elemento de la lista es fácil; sin embargo, la inserción o borrado requiere un desplazamiento de lugar de los elementos q...

Estrcutura de Datos

CONCEPTO DE DATOS ESTRUCTURADOS Una estructura de datos es una colección de datos generalmente de tipo simple que se caracterizan por su organización y las operaciones que se definen sobre ellos. Por lo cual una estructura de datos tendrá unas ciertas relaciones  entre los datos que la constituyen como por las operaciones posibles en ella. Entonces podemos afirmar que la estructura se puede expresar mediante un conjunto de reglas y relaciones además de las operaciones tales como insertar un nuevo elemento, borrar alguno.  Existirán estructuras de datos para memoria y para almacenar en  medios de almacenamiento secundario (discos). TIPOS DE DATOS ESTRUTURADOS Los datos simples tienen una representación conocida en términos de espacio de memoria. Pero cuando nos referimos a datos estructurados esta correspondencia puede no ser directa; por ello vamos a hacer una primera clasificación de los datos estructurados en contiguos y enlazados. Las estructuras contig...

Gestion de Memoria Dinamica

La computadora usa memoria de acceso aleatorio (RAM) para guardar información mientras esta en funcionamiento.   La RAM es volátil, lo que significa que es borrada y reemplazada con nueva información tan pronto como se necesita. La volatilidad también significa que la RAM “recuerda” solamente mientras la computadora está encendida, y pierde su información cuando se apaga la computadora. Cada computadora tiene una determinada cantidad de RAM instalada. La cantidad de RAM en un sistema se especifica por lo general en Megabytes (Mb) por ejemplo 512 Mb, 1 Gb o mas, en ese orden de ideas se dice un byte es la unidad de medida fundamental de la memoria de una computadora, de los cuales se obtiene los Kilobytes, Megabytes, Gigabytes, siendo estos los más usados. Un kilobytes de memoria equivale a 1,024 bytes. Para darse una idea de que tantos bytes se necesitan para guardar determinados tipos de datos lo invito a que revise la siguiente tabla de espacios requeridos para guard...

Algoritmos Recursivos

Los algoritmos recursivos son aquellos que solucionan un problema a través de llamadas a sí mismos. Son bastante y utilizados en lenguajes declarativos como prolog, presentan unas características bastante particulares que presentan unas ventajas y también desventajas, la principal ventaja es el espacio que ocupa el código en el programa, generalmente el tamaño de este tipo de algoritmos es bastante pequeño, la reutilización de código es su principal objetivo ya que por medio de procesos iterativos se llega a la resolución de un problema,  soluciones elegantes, soluciones simples y claras y soluciones a problemas de nivel de complejidad bastante alto. Sin embargo estos algoritmos presentan una desventaja que tienen que ver con su uso, es decir hay que tener mucho cuidado a la hora de usarlos,  para eso hay unas claves para utilizar algoritmos recursivos de una manera correcta: 1.               ...

Complejidad Computacional

Imagen
Es la rama de las ciencias de la computación que estudia, de manera teórica, la optimización de recursos requeridos durante la ejecución de un algoritmo para resolver un problema  El análisis se basa en dos aspectos:   El tiempo : Periodo transcurrido entre el inicio y la finalización del algoritmo.  El espacio : La cantidad de memoria (la medida varia según la maquina) que necesita el algoritmo para su ejecución.  La complejidad computacional considera globalmente todos los posibles algoritmos para resolver un problema dado. Estamos en la distinción que existe entre los problemas que pueden ser resueltos por un algoritmo en tiempo polinomico (Es el tiempo ideal, cuando el tiempo de ejecución de un algoritmo es menor que un cierto valor calculado, obviamente usando una formula polinomial como por ejemplo logarítmicas, lineales, cuadráticas o cubicas, se dice que dicho problema se puede resolver en un tiempo polinomico) y los problemas para los cuales no cono...