Sei sulla pagina 1di 2

I Resumen No Numérica 2

Análisis a Priori: su objetivo es obtener una función el cual limita el tiempo de computación del
algoritmo, se limitará a contar las veces que la instrucción será ejecutada, éste número puede ser
determinado independiente de la máquina en la que se ejecute, también tiene como objetivo la
determinación del orden de magnitud del algoritmo.
Análisis a Posteriori: su objetivo es la recolección de estadísticas acerca del consumo de tiempo
y espacio del algoritmo durante su ejecución
Para saber cuántas veces se ejecuta una instrucción se usa: para las veces que se ejcuta: Limite
Superior – Limite Inferior + 1, y las veces que no se ejecuta: 1 ( las sumamos)
Orden de magnitud: de una instrucción se refiere a la frecuencia de su ejecución mientras que el
de un algoritmo se refiere a la suma de las frecuencias de las instrucciones que lo componen

Notación Asintótica:
Notación O, se utiliza para expresar el límite máximo. Definición: f(n) = O(g(n)) sí y sólo sí existen
dos constantes positivas c y nO tales que |f(n)| ≤ c|g(n)| para todos los n≥nO. Cuando se desea
determinar el orden de magnitud de f(n), siempre se trata de obtener el g(n) más pequeño tal que
f(n)= O(g(n))
Teorema 1.1: Si A(n) = am nm+…+a1n+a0 es un polinomio de grado m, entonces A(n)=O(nm)
Para expresar los valores mínimos, también existe una notación. Definición: f(n) = Ω(g(n)) sí y sólo
sí existen constantes positivas c y nO tales que para todo n≥nO, |f(n)|≥ c|g(n)|
Y si los dos son iguales se usa Ѳ

Suma de enteros: durante el análisis de los algoritmos, nos encontraremos con las sumatorias:
∑𝑔(𝑛)≤𝑖≤ℎ(𝑛) 𝑓(𝑖) donde f(i) es un polinomio en i. Las más comunes:
𝑛(𝑛 + 1) 𝑛(𝑛 + 1)(2𝑛 + 1)
∑ 1= = 𝑜(𝑛2 ) ∑ 𝑖 ∑ 𝑖 2 = = 𝑂(𝑛3 )
2 6
1≤𝑖≤𝑛 1≤𝑖≤𝑛 1≤𝑖≤𝑛
En general:

𝑛𝑘+1
𝑘
𝑛𝑘
∑ 𝑖 = + + ⋯ = 𝑂(𝑛𝑘+1 )
𝑘+1 2
1≤𝑖≤𝑛

Perfil del comportamiento de un programa: es básicamente el tiempo efectivo de ejecución y la


memoria ocupada, la prueba más importante es aquella que confirma el análisis del orden de
magnitud del tiempo de calculo.
Estructura de datos Elementales: arboles, grafos y conjuntos.

Arboles: conjunto finito de uno o más notos tales que existe uno llamado raíz y el resto están
partidos en n≥0 conjuntos disjuntos T1..Tn los cuales son de por sí un árbol y se denominan
subárboles de la raiz.
Grado: es el número de Nodo terminal: nodos que Hijos: los nodos de los
subárboles tienen un grado igual a cero, subárboles de un nodo X.
también llamados hojas, otros X: padre de sus hijos.
nodos se llaman no terminales Nodos Hijos de un mismo
padre se llaman hermanos
El grado de un árbol es el máximo grado de los nodos de ese árbol.
Nivel: se define dejando que la raíz tenga el nivel 1, se dice que un nodo está en el nivel p, si sus
hijos están en el nivel p+1
Altura o profundidad: de un árbol es el nivel máximo de los nodos del mismo
Bosque: conjunto de n≥0 árboles disjuntos. Si le quitamos a un árbol su raíz obtenemos uno.
Datos: info contenida en el LINK: apuntador al siguiente TAG (1) apuntador (0) info
nodo nodo
Arboles Binarios: conjunto finito de nodos el cual es o bien vacío o consta de una raíz y 2 árboles
binarios disjuntos llamados subárboles izquierdo y derecho
Lemma 1: el máximo nro de nodos en el nivel i de un árbol binario es 2i-1. El nro máximo de nodos
que puede tener un árbol de profundidad K es 2k-1, k>0
Lemma 1.2: si se tiene un árbol binario completo de n nodos, entonces que para cualquier nodo i,
1≤i≤n tenemos:
a) Padre(i) se encuentra en |i/2| si i≠1 ya que si es 1 es la raíz y no tiene padre
b) Hijo_izq(i) se encuentra en 2*i si 2*i ≤ n, si es mayor que n no existe
c) Hijo_der(i) se encuentra en 2*i+1 si 2*i+1 ≤ n, si es mayor que n no existe

Cola de prioridad: estructura de datos que nos permite insertar elementos y conseguir el valor
máximo de manera eficiente.

Heap: árbol binario completo con la característica de que el valor de un nodo debe ser por los
menos igual a los valores de sus hijos (si existen), esto implica que el máximo valor se encuentra
en la raíz, para usar el heap como cola de prioridad es necesario que podamos insertar o remover
el elemento más grande en cualquier momento

Max heap: el valor de cada nodo es igual o mayor que el valor de sus nodos hijos
Min heap: el valor de cada nodo es igual o menor que el valor de sus nodos hijos

Heapify: construir heaps de manera eficiente.

Conjuntos y Unión de Conjuntos Disjuntos: usaremos los árboles para representar conjunto,
asumiremos que los elementos son números 1,2,3…,n que pueden ser índices a tablas donde se
almacenan los valores reales de los elementos, asumiremos también que como son disjuntos no
hay intersección, las operaciones que podemos realizar son:
 Unión de conjuntos disjuntos, si s1 y s2 son dos conjuntos discontinuos, podemos asumir
que al terminar la operación los conjuntos no siguen existiendo independientemente, el
tiempo necesario para procesar una unión es constante
 Encontrar(i), encontrar el conjunto que tienen i elemento

Grafos: consiste en 2 conjuntos llamados vértices V y ejes E, V es un conjunto finito no vacío de


vértices (a veces llamados nodos) y E es un conjunto finito consistente de vértices pares, cada par
E es un eje de G.
Si los pares ordenados <i,j> es diferente del <j,i> se dice que es un grafo DIRIGIDO, de otra forma
es NO DIRIGIDO
NO DIRIGIDO: se dice que el vértice i es adyacente al j si existe el par (i,j), el grado del vértice es
el número de vértices adyacentes, está conectado si para cada par existe un paso entre ellos
DIRIGIDO: se distinguen dos conceptos: grado interior (cuantas flechas entran al nodo) y el grado
exterior (flechas que salen del nodo), se dice que están fuertemente conectados
Paso: es la secuencia de vértices, manera de ir
Paso simple: aquel en el que todos los vértices son diferentes menos el primero y el último.
Paso ciclo: es uno simple pero el primero es el mismo que el último
Existen 2 maneras de representarlos: secuencial y encadenada. La secuencial: usa una matriz
cuadrada de n filas y columnas donde n es el número de vértices, se denomina matriz de
adyacencia

Potrebbero piacerti anche