Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de Datos1
Estructura de Datos1
Contenido
1. Encuentro: Programación Orientada a objetos................................................................1
Clases...........................................................................................................................1
Atributos y métodos.....................................................................................................2
Objetos.........................................................................................................................3
Arreglos........................................................................................................................3
2. Encuentro: Análisis de Algoritmos.................................................................................4
1. Complejidad temporal y espacial.................................................................................4
1.1 Procedimiento para calcular complejidad temporal de forma teórica..................5
1.2 Procedimiento para calcular complejidad espacial de forma teórica....................5
2. Notación asintótica y notación O grande.......................................................................5
3. Reglas para el cálculo de complejidad............................................................................6
4. Principales órdenes de complejidad................................................................................7
4.1. Orden constante O (1)..............................................................................................7
4.2 Orden logarítmico O (log n)......................................................................................7
4.3 Orden lineal O(n)......................................................................................................8
4.4 Orden n log de O (n log n)........................................................................................8
4.5 Orden cuadrático O(n2)............................................................................................9
4.6 Orden exponencial O(an)...........................................................................................9
5. Otras notaciones asíntotas diferentes a O grande..........................................................10
5.1. Notación asintótica Ω grande.................................................................................10
5.8. Notación asintótica Θ grande.................................................................................10
1. Encuentro: Programación Orientada a objetos.
Clases
Es abstracción de un conjunto de objetos reunidos bajo el mismo concepto.
Ex. Todos son perros. De pendiendo de la situación extraemos las características que nos
conciernen de los perros.
La abstracción es el proceso que se sigue para escoger únicamente las características que
resultan interesantes sobre los perros en un ámbito particular, con el objetivo de tener una
idea o modelo de lo que es un perro.
En java:
Atributos y métodos
Una clase se define mediante:
Un nombre que la identifica.
Atributos de los objetos de la clase : Representan características de los objetos de la
clase
Métodos asociados a los objetos de la clase: Representan comportamiento de los
objetos de la clase
o Los métodos se clasifican en:
Constructores: son los responsables de crear nuevas instancias de la
clase.
Analizadores: son los responsables de permitir consultas sobre los
atributos de la clase.
Modificadores: son los responsables de permitir modificaciones sobre
los atributos de la clase.
Objetos
Un objeto es una instancia o particularización de una clase.
Las propiedades de cada objeto son definidas mediante los valores que toman
sus atributos.
Arreglos
Un arreglo, es una secuencia de elementos del mismo tipo que son almacenados de forma
contigua.
El acceso a los arreglos se realiza mediante índices desde 0 para la primera pose
3. Encontrar una función que relacione el tamaño del problema con el número de
operaciones básicas ejecutadas, analizando el peor escenario posible.
Esta función refleja la complejidad temporal, porque entre más operaciones se
ejecuten, más tiempo se demoraría el algoritmo en ejecutar.
2. Encuentre una función que relacione el tamaño del problema con el número de
variables declaradas en el programa.
Esta función refleja la complejidad espacial porque entre más variables se declaren,
más espacio en memoria RAM requeriría el algoritmo para ejecutar
2. Notación asintótica y notación O grande
instrucción 1;
instrucción 2;
instrucción 3;
...
instrucción x;
Variable=expresión;
Caso 2 Asignación: Para calcular la complejidad temporal de una asignación hay que
hallar la complejidad del cálculo de la expresión que está siendo asignada.
if (condición){
instrucción 1;
instrucción 2;
instrucción 3;
...
instrucción x;
}
else{
instrucción x + 1;
instrucción x + 2;
instrucción x + 3;
...
instrucción y; }
Caso 4 Ciclo: Para calcular la complejidad temporal de un ciclo while o for se debe
multiplicar el número de iteraciones que hace el ciclo por la complejidad del cuerpo del
ciclo.
4. Principales órdenes de complejidad
Existen múltiples órdenes para clasificar la complejidad de los algoritmos; sin embargo,
hay un conjunto de ellos que es más común que los demás.
4.1. Orden constante O (1)
Representa la complejidad de un algoritmo que se ejecutará siempre en el mismo tiempo o
espacio, sin importar el tamaño de las entradas.
Como el algoritmo hace divisiones sucesivas de dos para fraccionar el arreglo, se vuelve
comparativamente más eficiente a medida que el tamaño del arreglo aumenta.
Se usa para describir la tasa de crecimiento en el mejor y el peor caso del tiempo de
ejecución, o el espacio de memoria empleado, de un algoritmo cuando la tasa es la misma.
Ex: Dada una función f(n) se dice que un algoritmo tiene complejidad temporal Θ(f(n)) si y
solo si el orden de complejidad en el mejor escenario es Ω (f(n)) y el orden de complejidad
en el peor escenario es O(f(n)).