diseño y analisis de algoritmos

Upload: pablo-soto

Post on 14-Jan-2016

228 views

Category:

Documents


0 download

DESCRIPTION

Apuntes algoritmos

TRANSCRIPT

Diseo y analisis de algoritmos

Diseo y analisis de algoritmosFacultad de Estudios Superiores AragnQuinto semestre

AlgoritmoQu 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 ALGORITMODebe 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. 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.TIPOS DE ALGORITMOS Complejidad ComputacionalConsisten en resolver el problema con menos recursosEficienciaEficaciaConsiste en resolver un problemaFormulaCosto ComputacionalConsiste en medir la eficiencia de coste temporal de los algoritmosUn algoritmo es mas eficiente cuando menos complejo seaTipos de ComplejidadesComplejidad Espacial

Se mide en cantidad a la memoria que requiere un algoritmo al ejecutarseComplejidad Temporal

Se mide con el tiempo que necesita el algoritmos para ejecutarseTipos de OrdenamientoOrdenamiento BurbujaOrdenamiento QuickSortAlgoritmo de Ordenamiento LinealBsqueda BiseccinPilasColasArboles Binarios

Algoritmos RecursivosLa 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 ComplejidadIntroduccin a PythonIndentacinLa 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 pythonPara 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 pythonLa estructura de control IF

if condicin:Cdigo que se ejecutar si cumple la condicin elif condicin: Cdigo que se ejecutar si cumple la condicinelse:Cdigo que se ejecutar si no cumple la condicin

Estructuras de control en pythonEstructura de control FOR.

for x in range (s):cdigo que se ejecutar mientras x est en sListasPara 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 listaLISTASUna 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] LISTASPara 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]LISTASPara 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

LISTASPara eliminar un elemento de una lista se utiliza .remove()

Ejemplo:lista=[1,2,3,4,5]lista.remove(5)lista=[1,2,3,4]

LISTASPueden 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 Cadenascadena=hola mundocadena.append(a): nos permite agregar un elemento a la listacadena.split(): nos permite separar cadenas mediante una letracadena.sort(): permite ordenar una lista en pythoncadena.capitalize(): convierte la primera letra en maysculaMetodos Cadenascadena.upper(): convierte a cadena en mayusculascadena.lower(): convierte a cadena en minusculasCadena.remove(hola): borra la palabra de la lista

Funciones PythonLas funciones son tiles para separar cdigo por fragmentos lo cual hace mas fcil su correccin en caso de errorLas funciones en python se declaran con la palabra def seguido del nombre de la funcionEjemplo Funcionesdef suma(num1,num2): return num1+numero2def resta(num1,num2):return num1-num2def calcular()numero=3 numero2=4print suma(numero,numero2)print resta(numero2,numero)