Está en la página 1de 36

Diseo y analisis

de algoritmos
Facultad de Estudios Superiores Aragn
Quinto semestre

Algoritmo
Qu es un algoritmo?

Es una secuencia de pasos bien definidos


para lograr un objetivo o fin.

El algoritmo constituye un mtodo para


resolver un
problema mediante una secuencia de pasos a
seguir.
Dicha secuencia puede ser expresada en
forma de
diagrama de flujo con el fin de seguirlo de una
forma
ms sencilla.

CARACTERSTICAS DE UN
ALGORITMO
Debe ser Preciso, porque cada uno de sus pasos debe indicar de

manera precisa e inequvoca que se debe hacer.


Debe ser Finito, porque un algoritmo debe tener un nmero

limitado de pasos.
Debe ser Definido, porque debe producir los mismos resultados

para las mismas condiciones de entrada.


Puede tener cero o ms elementos de entrada.
Debe producir un resultado. Los datos de salida sern los

resultados de efectuar las instrucciones.

TIPOS DE ALGORITMOS
Bsqueda exhaustiva: Consiste en probar

todas las soluciones posibles hasta encontrar


la solucin buscada.
Bsqueda de Biseccin: Consiste en ir

partiendo el espacio de bsqueda en partes


ms pequeas.
Mtodo Newton Raphson: Consiste en

encontrar la raz cuadrada de una ecuacin


iterndola n veces.

Complejidad
Computacional

Eficiencia
Consisten en

resolver el problema
con menos recursos

Eficacia
Consiste en
resolver un
problema

Formula

Eficiencia

Costo Computacional
Consiste en medir la eficiencia

de coste temporal de los


algoritmos
Un algoritmo es mas eficiente
cuando menos complejo sea

Tipos de Complejidades
Complejidad
Espacial
Se mide en cantidad

a la memoria que
requiere un
algoritmo al
ejecutarse

Complejidad
Temporal
Se mide con el tiempo

que necesita el
algoritmos para
ejecutarse

Tipos de
Ordenamiento

Ordenamiento Burbuja
El costo computacional de este algoritmo es

de y tiene un orden de , es decir tiene un


orden cuadrtico

Ordenamiento QuickSort
Este algoritmo es de orden

Algoritmo de Ordenamiento Lineal


Estos algoritmos crecen conforme crece n,

y su orden es de

Bsqueda Biseccin
Su orden de complejidad para este algoritmo

es de , esto quiere decir que es de orden


logartmico.

Pilas
Este tipos de Estructura de Dato tiene un solo

tipo de orden tanto para sacar o ingresar un


elemento a la pila y su orden es de como se
puede ver su orden es constante

Colas
Para este otro tipo de Estrcutura de Datos las

cosas cambian y no es igual al de la pila en


una sola parte que es sacar, para sacar un
elemento de la cola debemos reacomodar
todo el arreglo de elementos y eso requiere
un esfuerzo extra.
Insertar en una cola tiene un orden de
Sacar un elemento tiene un orden de

Arboles Binarios
En un rbol binario tenemos diferentes costos

computacionales:
Busqueda: su orden es de
Insertar: su orden es de
Ordenar: su orde es de

Algoritmos Recursivos
La complejidad de los algoritmos recursivos

involucra la solucin de una ecuacin


diferencial, o el de adivinar un resultado y
verificar si es correcto.
Tener algoritmos recursivos es mas sencillo
en la mayora de las veces pero hay que tener
en cuenta que requiere de mas recursos para
la mquina

Ejemplos y Orden de Complejidad

1.
2.
3.
4.
5.
6.
7.

:
:
:
:
:
:
:

Sacar e ingresar de una pila


Buscar en un rbol binario
Sacar de una cola
Ordenamiento QuickSort
Ordenamiento Burbuja
Dibujar puntos y unirlos
Esto son los peores

Introduccin a
Python

Indentacin
La indentacin es una parte fundamental en
python, ya que controla la lgica de un
programa.
La indentacin en python funciona como
llaves ({ , }) y controla la funcin de las
sentencias de control (if, while, for, etc).

Algunas funciones en
python
Para convertir una variable de un tipo a otro
se puede usar:
int() : Convierte en entero lo que est

dentro del parntesis.


str() : Convierte en caracter o cadena lo que

est dentro del parntesis.

Para ver de qu tipo es nuestra variable, se

utiliza la funcin type()


Si quieres comentar una parte del cdigo,

en python se utiliza

##.

range(inicio, fin). Se utiliza para ver los

nmeros que se encuentren dentro de esta


funcion, desde el numero inicial, hasta el
nmero final-1.
Para introducir datos del usuario, utilizamos:

raw_input(Introduce un dato)

Estructuras de control en python


La estructura de control IF
if condicin:
Cdigo que se ejecutar si cumple la condicin
elif condicin:
Cdigo que se ejecutar si cumple la condicin
else:
Cdigo que se ejecutar si no cumple la condicin

Estructuras de control en python


Estructura de control FOR.
for x in range (s):
cdigo que se ejecutar mientras x est en
s

Listas
Para declarar una lista:

a=[valor 1,valor 2,valor 3, , valor n]


Para ver un elemento de una lista:

a[posicin]
Mostrar el nmero que est en la posicin n de
la lista

LISTAS
Una lista puede funcionar como un objeto, ya

que puede contener mtodos, incluso puede


guardar diferentes tipos de datos en ella.
Ejemplo:
a=[1, True, hola mundo]

LISTAS
Para agregar un elemento nuevo a la lista se
utiliza
.append
Ejemplo:
b=[1, True, hola mundo]
b.append(345)
b=[1, True, Hola mundo, 345]

LISTAS
Para ver el tamao de una lista, se utiliza

len()
La funcin .pop() elimina el ltimo elemento
de una lista
Nota: Se puede utilizar .pop() y .append()
para hacer una pila

LISTAS
Para eliminar un elemento de una lista se utiliza
.remove()
Ejemplo:
lista=[1,2,3,4,5]
lista.remove(5)
lista=[1,2,3,4]

LISTAS
Pueden haber listas dentro de listas.

Ejemplo:
b=[1,2,3] a=[4,5,6]
b.append(a)
b=[ 1 , 2 , 3 , [4,5,6] ]
Para acceder a un elemento de una lista dentro

de otra, se utiliza:
b=[posicin lista 1][posicin lista 2]

Metodos Cadenas
cadena=hola mundo
cadena.append(a): nos permite agregar un

elemento a la lista
cadena.split(): nos permite separar cadenas
mediante una letra
cadena.sort(): permite ordenar una lista en
python
cadena.capitalize(): convierte la primera letra
en mayscula

Metodos Cadenas
cadena.upper(): convierte a cadena en

mayusculas
cadena.lower(): convierte a cadena en
minusculas
Cadena.remove(hola): borra la palabra de la
lista

Funciones Python
Las funciones son tiles para separar cdigo

por fragmentos lo cual hace mas fcil su


correccin en caso de error
Las funciones en python se declaran con la
palabra def seguido del nombre de la funcion

Ejemplo Funciones
def suma(num1,num2):
return num1+numero2
def resta(num1,num2):
return num1-num2
def calcular()
numero=3
numero2=4
print suma(numero,numero2)
print resta(numero2,numero)

También podría gustarte