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 sub programas.
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 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
6Definició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
7Algoritmos de Búsqueda
8Definició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
9Algoritmos de Búsqueda
- Definición Son 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
10Tipos de Búsqueda
- - Búsqueda Secuencial.
- - Búsqueda Binaria.
1
11Búsqueda Secuencial
- Consiste en ir comparando el elemento que se
busca con cada elemento del arreglo hasta que se
encuentra. Buscar M
0
1
2
3
4
5
6
7
8
9
1
12Algoritmo Búsqueda Secuencial
1
13Bú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. Buscar 32
0
1
2
3
4
5
6
7
1
14Algoritmo Búsqueda Binaria
1
15Búsqueda secuencial bidimensional por filas
1
16Búsqueda secuencial bidimensional por columnas
1
17Algoritmo 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
18Algoritmos de Ordenamiento
19Definició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
20Algoritmos 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
21Algoritmos de Ordenamiento
- Tipos de Algoritmos
- 1.- Ordenamiento Burbuja.
- 2.- Insertion-Sort
- 3.- Quick-Sort
- etc...
1
22Ordenamiento Burbuja
- El algoritmo consiste en que los elementos más
pesados se hundan y los más livianos salgan a
flote.
1
23Ordenamiento Burbuja
1
24Ordenamiento Por inserción
25Ordenando una lista en forma alfabética (cont.)?
26Ordenando una lista en forma alfabética (cont.)?
27Algoritmo de sort por inserción en pseudocódigo
28Algoritmos de Ordenamiento
- Ejercicios
- - Ordenar un conjunto de n enteros de menor a
mayor. - - Lo mismo pero en lista encadenada
1
29Stack 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
30Stack 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
31Fila 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).
32Fila 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.