Está en la página 1de 7

ALGORITMOS

Objetivos:
Algoritmo -> secuencia de pasos organizados para resolver un problema.
Caractersticas:
Un algoritmo debe ser finito -> termina en un tiempo determinado.
Debe ser capaz de determinar la solucin del problema planteado.
CONCRETO -> dar solucin exacta del problema a resolver.
LEGIBLE -> entendible para otras personas.
EFICIENTE ->
NO AMBIGUO ->explcito, que pas realizar en cada instruccin.
PRECISO -> cumple con lo que vamos a realizar.
DEFINIDO -> generar siempre el mismo resultado.
TIPOS
CUALITATIVOS
Describen pasos utilizando palabras.
CUANTITATIVOS
Utilizan clculos numricos para definir los pasos del proceso.

LENGUAJE ALGORTMICO
Serie de smbolos y reglas utilizadas para escribir de manera explcita un proceso.
Diversas formas de representacin; diagramas de flujo y pseudocdigo.

Partes:
Entrada: cantidades dadas que representan el mundo real.
Proceso: descripcin de la operacin que llevara a cabo con las entradas anteriores.
Salida: Producto obtenido despus del algoritmo (dato o producto final).

Pasos para la solucin del problema:


Definicin del problema.- enunciado del problema con el que se delimita.
Anlisis.- Requisitos o restricciones.

Diseo algoritmo.- pasos a seguir para resolver el problema


ANLISIS DE ALGORITMOS
Mtodo necesario para poder comparar distintos algoritmos que resuelven el mismo
problema.
Es eficiente si administra correctamente los recursos.
Eficiencia algortmica -> consumo de recursos por parte de los algoritmos en tiempo y
espacio.
Ordenamiento, Bsqueda, Procesamiento Datos, Grafos, Geomtrico.
VENTAJAS

EFECTO

Predecir si es utilizable

Ayudar a corregir

Compararlo

definir nuevas estructuras de datos

Entenderlo mejor.
CMO ANALIZAR?
Medir la cantidad de tiempo y espacio -> Ejecucin algortmica.
Es factible de ejecutar en un computador.
Predecir el comportamiento antes de pasarlo al computador.
* Determinar que operaciones se emplean y cul es su costo.
MTODOS
FUERZA BRUTA
Solucin poco reflexiva que se basa en el mtodo de prueba y error.
DIVIDE Y VENCERS
Descomponer problema en sub problemas.
VORAZ
Emplea optimizacin y parte de la solucin puede mejorarse
BACKTRACKING
En caso de no encontrar la solucin se regresa a la tarea original.
Programacin dinmica.- mediante secuencia de decisiones.

GRAFOS
Son EDD no lineales donde cada componente puede tener uno o ms predecesores o
sucesores.
Nodo <-> Vrtice

Arista <-> Arcos

Consta de 2 conjuntos V(G) y A(G); G = (V,A)

Grado del vrtice


Lazo o bucle
camino
camino cerrado.- llega al mismo
camino simple.- recorrido
ciclo.- se regresa una y otra vez
grafo conexo.- siempre es cerrado (no conexo.- no cerrado)
grafo rbol.- forma un rbol
grafo completo.- todos completos
grafo etiquetado.- tiene valores en sus aristas.
multgrafo; tienen dos enlaces entre nodos.
GRAFO DIRIGIDO
Direccin u orientacin entre nodos.
Sus aristas tienen asociada una direccin. Es decir en pares ordenados.
Vrtices representan informacin, las aristas representan direccin entre nodos.
-> Cada arista tiene una direccin asignada -> arista asociada a un par ordenado
de vrtices del grafo.
REPRESENTACIN
Requieren otras Estructuras de datos (EDD) Matrices y listas adyacentes.
Matriz de adyacencia.- matriz booleana de orden n -> nmero de vrtices G.
Cada elemento i, j de la matriz almacena un 1 y un 0.
A

A
B
C
D

A
0
0
0
0

B
1
0
0
0

C D
0 1
1 1
0 0
1 0

A
B
C
D
E

A
0
1
0
0
1

B
1
0
0
0
1

C D E
0 0 1
0 0 1
0 1 1
1 0 0
1 0 0

CUANDO NO EST BALANCEADO O(n)


Cuando est balanceado Olog(n)
A

B
E

A
B
C
D
E

B
A
D
C
A

E
E
E
null
B

Null
Null
Null
C

null

ARBOLES
Estructura jerrquica (de datos no lineal/ aplicada sobre una coleccin de elementos u
objetos llamados nodos)
Consta de nodos (conjunto finito de elementos)
Conjunto finito de lneas simples -> ramas (conectan nodos)
Nodos hijos, padres, raz, hojas, interiores, camino, rama.
Grado por nodos; hijos de un nodo.
Grado por rbol; mayor grado de todos los nodos.
Nivel;
Altura; nmero de niveles.
LONGITUD CAMINO INTERNO
LCI.- suma de longitudes de camino de todos los nodos del rbol. Sirve para conocer los
caminos que tiene el rbol.

Medida de longitud de camino interno nos permite saber cul es la mejor decisin que
debemos tomar para llegar a un nodo determinado partiendo del nodo raz.

LONGITU DE CAMINO EXTERNO


Suma de las longitudes de camino de los especiales del rbol.

ARBOLES BINARIOS
Pueden tener mximo 2 hijos de grado 2.
Distintos; diferentes estructuras de nodos y arcos
Similares; idnticos solo en informacin que contiene sus nodos.
Equivalentes; estructura similar y contienen la misma informacin.

ABC
Todos sus nodos excepto los ltimos tienen 2 hijos; subrbol izquierdo y derecho.

REPRESENTACIN EN MEMORIA DE ARBOLES BALANCEADOS.


(null) apunta al nodo izquierdo

Informacin

(null) apunta al nodo derecho.

Enalce= ^nodo
Nodo=registro
izquierdo: tipo enlace
informacin: tipo de dato
derecho: tipo de enlace.
[Fin de la definicin]
OPERACIONES
Recorridos;
Preorden; Visitar raz, recorrer subrbol izquierdo, recorrer subrbol derecho.
Inorden; recorrer subrbol izquierdo, raz, subrbol derecho.
Postorden; Subrbol izquierdo, subrbol derecho, raz.

ARBOL BINARIO DE BUSQUEDA


Subrbol Izquierdo = Menores
Subrbol Derecho = Mayores
BUSQUEDA PRIMERO EN ANCHURA
Se expande el nodo raz se expanden los sucesores del nodo raz y despus sus
sucesores, etc.
Complejidad: O(bd) donde b es ramificacin y d es la altura.
Cola.- mejor EDD que se adapta a este tipo de bsqueda
BUSQUEDA PRIMERO EN PROFUNDIDAD
Pila.- mejor EDD que se adapta a este tipo de bsqueda.
BUSQUEDA PRIMERO EN PROFUNDIDAD ITERATIVA
Combina las ventajas de la bsqueda en anchura y la bsqueda en profundidad.
INSERCIN en Arboles Binarios de Bsqueda
PRIMER CASO-> Si insertamos en un rbol ya creado.
SEGUNDO CASO-> Si se realiza la insercin por primera vez.

ELIMINACION
Eliminar nodo sin violar los principios del ABdB (rbol binario de bsqueda)
1er caso: Eliminar un nodo hoja, sin hijos. Redefinir puntero del predecesor a null.
2do caso: Eliminar nodo padre que tiene un hijo, el nodo descendiente ocupa del lugar
del padre.
3er caso: Eliminar nodo con 2 hijos.
ARBOLES BALANCEADOS
Mejorar rendimiento de rboles binario cuando tienen crecimiento descontrolado. Es
ABdB. La altura del subrbol izquierdo y derecho no debe diferir en ms de una unidad.
Si la altura es 0, el rbol est vaco.
Si la altura es igual a 1 existe un nico nodo.
Si la altura es mayor que 1 existe desequilibrio.
Hay que distinguir:

si la rama izquierda y derecha tienen la misma altura.


si la rama izquierda y derecha tienen diferente altura -> si se inserta un elemento
en la rama derecha se rompe el criterio de equilibrio.

FACTOR DE EQUILIBRIO
Determinar si existe o no equilibrio en AbdB.
FE= HRD HRI; donde HRD es la altura del subrbol derecho y HRI es la altura del
subrbol izquierdo.
Si el factor de equilibrio es igual a 2 o -2 se debe reestructurar rbol. El FE de equilibrio
puede tomar valores de -1, 0 y 1 antes de reestructurarse.
Existe rotacin simple (izquierda y derecha) y rotacin compuesta (izq-derecha, der-izq)
INSERTAR 64 49 22 69 81 67 38
RBOL B
Generacin de rboles balanceados.
Cada nodo uede tner un mximo de M valores.
Nodos -> Pginas
* Cada nodo (pgina) de orden d tiene 2 claves como mximo y de claves como
mnimo.

Hojas no descendentes
raz tiene una clave y 2 hijos.
Hojas estn al mismo nivel.

Cada pgina de un rbol B de orden d tiene 2d+1 hijos como mximo y d+1
como mnimo.

BSQUEDA E INSERCIN
Proceso sencillo con detalles poco complicados.
Comportamiento diferente al resto de rboles.
Forma extraa de crecer, de abajo hacia arriba.
Todas las hojas tienen el mismo nivel -> cualquier camino desde la raz hasta cualquiera
de las hojas tienen la misma longitud.
m -> numero de elementos de los nodos de un rbol.
Si es de orden 2; el mximo es 2d.
ORDENACIN
Reagrupar o reorganizar un conjunto de datos u objetos en una secuencia especfica
Ordenacin de arreglos;
Interna: se encuentran en la memoria principal.
Externa: almacenadas en dispositivos de almacenamiento secundario.
Ordenacin Interna;
Existen 2 tipos
Mtodos directos (n^2) ineficientes y fciles de implementar.
1.- Intercambio (burbuja) -> se realizan n-1 pasadas colocando menores a la izquierda y
mayores a la derecha.
2.- Insercin
3.- Seleccin

Mtodos logartmicos (n*logn) son complejos y eficientes.

CASO 1: No patrn a la izquierda y su siguiente (carcter fallo) es igual al primero del


arreglo. Se coloca -1 (bajo el siguiente del fallo)
CASO 2: No patrn a la izquierda y su siguiente (carcter fallo) es diferente al primero
del arreglo. Se coloca 0 (bajo el caracter de fallo)
CASO 3: Hay patrn a la izquierda y el siguiente carcter del patrn es diferente al
carcter de fallo, se coloca el tamao del patrn.
(Se desplaza el patrn m posiciones a la izquierda del caracter de fallo, m es tamao del
patrn.)
CASO 4: Hay patrn a la izquierda y el siguiente carcter del patrn es igual al carcter
de fallo, se coloca la posicin del siguiente carcter del patrn.