Guia Estructura

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

¿Qué es estructura de datos?

Colección de datos almacenados, primitivos y/o compuestos que se caracteriza por


su organización y las operaciones que lo componen

¿Qué es un tipo de dato y cuál es su clasificación?

Hoy conjunto de valores que puede tomar una variable y sus operaciones

-primitivos/atómicos. Entidades únicas que no se construyen a partir de otros tipos,


Hoy son los tipos más simples (int, char.boolean,float…)

-compuestos /agregados. son aquellos que se pueden dividir en otros que tengan
significado, entidades que se construyen a partir de otros tipos.(arreglos, cadenas)
¿Qué es la abstracción?

permite diseñar programas más cortos que sean legibles y flexibles.

¿Cuál es la estructura de datos básica definida por el programador?

Una clase está formada por atributos (datos) y métodos (operaciones) con los que
se pueden manipular dichos datos

¿Qué es un tipo de dato abstracto?

El tipo de datos definido por el usuario, tipo de dato que está formado de datos y los
métodos o funciones con los que se pueden manipular dichos datos

¿Qué nos permite la abstracción de datos?

permite crear nuevos tipos de datos de acuerdo a las necesidades de la aplicación

¿Cuáles son las condiciones de un tipo de dato abstracto?

• Las características del lenguaje le permiten asociar la representación de los


datos con las operaciones que lo manipulan.
• La representación del tipo de datos permanece oculta al ámbito que lo utiliza.

Menciona ventajas del TDA.

Mejoran la representación y comprensión del mundo real mediante la creación de


modelos.

· Incrementan la robustez del Sistema.

· Mejoran el rendimiento del Sistema.

· Permiten la reutilización del Sistema.

https://es.educaplay.com/recursos-educativos/5152786-estructuras_de_datos.html
¿Qué representa el manejo de memoria?

Las características que le darán a una aplicación mayor o menor eficiencia, de


acuerdo con el problema en resolver.

¿Qué es la memoria estática?*

la forma más simple de almacenar el contenido de una variable

¿Qué es la memoria dinámica?*

Es el espacio de almacenamiento que se solicita en tiempo de ejecución. Mientras


va necesitando espacio para más datos va solicitando más memoria al sistema
operativo.

1.5

*La teoría de complejidad de los algoritmos tiene que ver directamente con su
eficiencia.
*La Eficiencia de un algoritmo está determinada por la cantidad de recursos que
consume un programa durante su ejecución.
*A menor consumo de recurso(tiempo/espacio) será mayor la eficiencia.

1) El tiempo de procesador o Complejidad Temporal:


Se denota por “T” y expresa el tiempo que tarda en ejecutarse un programa. Esto
dependerá del número de instrucciones elementales que ejecuta y la rapidez de
cada una de las instrucciones.

2) Espacio en memoria
o
Complejidad Espacial:
Se denota por la letra “E” y expresa la cantidad de memoria que requiere un
programa. Depende principalmente del número de variables que utiliza y del espacio
que cada variable ocupa.
• ¿Cómo se puede definir la eficiencia de un algoritmo?
Características basadas en el consumo de recursos
• ¿Cuáles son los recursos en los que se basa la eficiencia de los algoritmos?
Tiempo y espacio
• Representa la cantidad de memoria requerida por un programa, depende de
la cantidad y el tamaño de variable que usa.
Complejidad espacial.

*factores*-------------------------------------------------------------------------------------
• ¿Cuáles son los factores que de los que depende la eficiencia del programa?

-El algoritmo utilizado.


-El tamaño de la entrada, que es una medida de la cantidad de datos que se
deberán procesar.
• ¿por qué el tamaño de la entrada de datos es un factor que determina la
eficiencia del programa?
Porque representa la cantidad de procesos a realizar y se refleja en el
tiempo de ejecución
• ¿por qué el algoritmo utilizado es un factor que determina la eficiencia del
programa?
Porque las sentencias del algoritmo determinan su complejidad

• ¿Cuáles son las dos formas de medir la complejidad?


1)Prueba empírica: Consiste en implementar el programa y probarlo por medio de
su ejecución, midiendo el tiempo y el espacio en una máquina concreta y con datos
específicos.

Características:

-El resultado es dependiente de la máquina

-Es poco informativo

-Requiere implementar el algoritmo y ejecutarlo varias veces


-Nos da valores exactos, como el tiempo en segundos y el espacio de memoria
en bytes, pero solo para una máquina determinada y datos concretos.

2) Análisis de Complejidad: Consiste en estimar el tiempo y el espacio a partir del


análisis de las instrucciones que componen el algoritmo.

Características:

-Es independiente de la máquina

-Es más informativo

-Se aplica sin necesidad de implementar el programa

-Nos da valores aproximados

Notaciones asintóticas--------------------------------------------------------------------------------

• ¿Qué son las notaciones asintóticas?

Son aquellas que permiten caracterizar el ritmo de crecimiento de una función, en


este caso las notaciones asintóticas nos permiten caracterizar el comportamiento
de T(n) y E(n).

***nota***

No se pretende establecer el tiempo exacto de ejecución o el espacio de memoria


ocupado, sino que simplemente se clasifica el algoritmo en función del tamaño de
los datos de entrada.
• ¿Qué estudian las notaciones?

El comportamiento de los algoritmos para volúmenes de datos de gran tamaño que


es justo cuando la eficiencia del algoritmo es más crítica.
• ¿Por qué una notación asintótica ayuda a caracterizar el comportamiento de
los algoritmos?

Porque estudian el comportamiento de los algoritmos para volúmenes de datos de


gran tamaño.

Aritmética de la notación 0---------------------------------------------------------------------------


Se refiere a sentencias de asignación, operaciones aritméticas, entradas y salidas.

¿Cómo se llama al grado de complejidad de un algoritmo?

Orden

(3+1)

**else no se suma porque es otra condición.


.

Ordenes de complejidad---------------------------------------------------------------------------------

O (1) Orden Constante: Indica cuando las instrucciones se ejecutan una sola
vez.
O (log n) Orden Logarítmico: en el doble de tiempo permiten resolver
problemas notablemente mayores y para resolver un problema doblemente
mayor solo hace falta un poco más de tiempo, pero nunca el doble.
O(n) Orden lineal: son el doble de datos a procesar nos dará el doble de tiempo
de ejecución
O (n log n) Orden Cuasi-lineal: si n se duplica el tiempo de ejecución es
ligeramente mayor del doble.
O (n2) Orden Cuadrático: Aparece en ciclos doblemente anidados y si n se
duplica el tiempo de ejecución puede aumentar hasta 4 veces.
O (n3) Orden cúbico: Se da en ciclos de triple anidación si n se duplica el
tiempo de ejecución se multiplica hasta 8 veces.
O (n a) Orden Polinomial: se encuentran con dificultad a problemas de tamaño
creciente y se encuentran en el límite de lo tratado. La complejidad es bastante
mala.
O (an) Orden Exponencial: Estos algoritmos no suelen ser muy útiles en la
práctica por el elevadísimo tiempo de ejecución. Se dan en programas
recursivos que contienen dos o más llamadas internas.

Complejidad--------------------------------------------------------------------------------------------
Dado un algoritmo de debe conocer su complejidad Temporal por medio de alguna
de las dos formas de medirla, recomendándose siempre el Análisis del Algoritmo.

La Complejidad Espacial del algoritmo dependerá de la memoria que requiera, y


puede ser para diferentes conceptos:

a) Variables estáticas y Locales

b) Variables dinámicas

c) Parámetros de funciones y métodos

d) Indicadores de archivos

La cantidad de memoria que consume un programa durante su ejecución depende


de las variables que se hayan creado estática y dinámicamente y además de la
sucesión de llamadas a funciones por lo que se puede complicar considerablemente
el análisis.

¿Cómo se mide la cantidad de memoria que consume un programa?

Con el tamaño de las variables declaradas


¿Cuándo consideras que es importante tomar en cuenta la complejidad de un
algoritmo?

Cuando se manipula un gran volumen de datos

También podría gustarte