Title: Algoritmos
1Algoritmos
2Definiciones de Algoritmos
- Es un procedimiento computacional bien definido
que toma algún valor, o un conjunto de valores,
como entrada y produce algún valor, o un conjunto
de valores, como salida. - Es una secuencia de pasos computacionales para
transformar la entrada en la salida. - Es una herramienta para solucionar un problema
computacional bien especificado.
1
3Estratégia Dividir para gobernar
Dividir el problema en subproblemas En la
resolución de un problema complejo, se divide en
varios sub problemas y seguidamente se vuelven a
dividir los sub problemas en otros mas sencillos,
hasta que puedan implementarse en el computador.
1
4Diseño top-down
- Se entiende como diseño descendente ( Top-Down /
Norte-Sur ) o diseño modular - El proceso de ruptura del problema en cada etapa
se llama refinamiento sucesivo. - Cada problema se resuelve mediante un modulo
(subprograma) y tiene un solo punto de entrada y
un solo punto de salida. - Un programa bien diseñado consta de un programa
principal (modulo de nivel mas alto) que llama a
subprogramas (módulos de nivel mas bajo), que a
su vez pueden llamar otros subprogramas. - Los programas que se estructuran de esta forma,
se dicen que tienen diseño modular y el método de
romper el programa en modos pequeños se llama
programación modular.
1
5Definición formal del problema de búsqueda
- Entrada
- secuencia de n números lta1, a2,..,angt
- Un número b
- Salida
- un entero i, tal que b ai (igual)
- 0 si b ! ai, para i 1,...,n
- Ejemplo instancia
- Entrada lt5, 6, 9, 12gt y 9
- Salida 3
1
6Definición formal del problema de ordenamiento
- Entrada
- secuencia de n números lta1, a2,..,angt
- Salida
- Una permutación lta'1, a'2,..,a'ngt reordenamiento
de la secuencia, tal que - a'1 lt a'2 lt ... lt a'n
- Ejemplo instancia
- Entrada lt5,3,1,6,0gt
- Salida lt0,1,3,5,6gt
1
7Definición formal del problema cálculo del
factorial
Entrada Número entero n Salida Número entero
fac(n) tal que 0 si n lt 0
1 si n 0
1 si n 1 n fac(n-1)
si n gt 1 Ejemplo instancia Entrada 3
Salida 6
fac(n)
1
8Definición formal del problema máximo común
divisor
Entrada Números enteros m,n Salida Número
entero mcd(n) tal que n si
mn 0
mcd(n, mn) si mn gt
0 Ejemplo instancia Entrada 105, 6
Salida 3
mcd(n)
1
9Algoritmos de Búsqueda
10Algoritmos de Búsqueda
- DefiniciónSon algoritmos para encontrar un dato
dentro de una estructura o arreglo - - Se ha desarrollado un conjunto de algoritmos
de búsqueda que varían en complejidad, eficiencia
y tamaño del dominio de búsqueda. - - Si se conoce por anticipado en qué tipo de
orden inicial se encuentran los datos, es
posible elegir un algoritmo que sea más adecuado.
1
11Tipos de Búsqueda
- - Búsqueda Secuencial.
- - Búsqueda Binaria.
1
12Búsqueda Secuencial
- Consiste en ir comparando el elemento que se
busca con cada elemento del arreglo hasta que se
encuentra.
0 1 2 3 4 5
6 7 8 9
1
13Algoritmo Búsqueda Secuencial
1
14Búsqueda Binaria
- Los elementos del arreglo se encuentran
ordenados y no están repetidos. En cada iteración
el dominio de búsqueda se divide en 2.
0 1 2 3 4 5 6
7
1
15Algoritmo Búsqueda Binaria
1
16Algoritmo de Búsqueda
- Ejercicios
- - Crear un programa que busque un caracter dentro
de un vector. - - Crear un programa que busque el número más
pequeño en un vector. - - Buscar un número seleccionado dentro de un
arreglo ordenado. - - Hacer lo mismo pero con una lista encadenada.
1
17Algoritmos de Ordenamiento
18Algoritmos de Ordenamiento
- Definición
- Son algoritmos que fueron realizados para ordenar
un conjunto de datos. Los algoritmos varían según
su facilidad de entendimiento, su eficiencia,
cantidad de código necesario para implementarlos,
complejidad, requisitos necesarios de los datos.
1
19Algoritmos de Ordenamiento
- Tipos de Algoritmos
- 1.- Ordenamiento Burbuja.
- 2.- Quick-Sort
1
20Ordenamiento Burbuja
- El algoritmo consiste en que los elementos más
pesados se hundan y los más livianos salgan a
flote.
1
21Ordenamiento Burbuja
1
22Algoritmos de Ordenamiento
- Ejercicios
- - Ordenar un conjunto de n enteros de menor a
mayor. - - Lo mismo pero en lista encadenada
1
23Búsqueda secuencial bidimensional por filas
1
24Búsqueda secuencial bidimensional por columnas
1
25Stack o Pila
- Definición
- Una pila es una estructura de datos, a la cual
se le puede ingresar o sacar elementos por un
sólo lado. También se conoce como LIFO (Last In
First Out).
1
26Stack o Pila (cont.)
- Operaciones básicas
- Insertar inserta un elemento en el tope de la
pila. - Sacar Saca un elemento del tope de la pila.
- Tope Muestra el elemento ubicado en el tope de
la pila. - Vacía Retorna verdadero si la pila está vacía.
1
27Fila o cola
- Definición
- Una pila es una estructura de datos, a la cual
se le puede ingresar elementos por un lado y
retirar por el otro. También se conoce como FIFO
(First In First Out).
28Fila o cola (cont.)
- Operaciones básicas
- Insertar inserta un elemento alfinal de la fila.
- Sacar Saca un elemento del inicio de la fila.
- Vacía Retorna verdadero si la pila está vacía.