Está en la página 1de 7

PROGRAMACIÓN I

Cnel. José Bermúdez Soto


Ingeniero de Sistemas
Doctor en Ciencias Técnicas
ALGORITMOS - Busquedas

Un algoritmo de búsqueda es un conjunto de instrucciones que están


diseñadas para localizar un elemento con ciertas propiedades dentro de una
estructura de datos; por ejemplo, ubicar el registro correspondiente a cierta
persona en una base de datos, o el mejor movimiento en una partida de
ajedrez.
La variante más simple del problema es la búsqueda de un número en un
vector.
Una característica que influye en la búsqueda es si el conjunto destino
está ORDENADO o NO.
ALGORITMOS - Busquedas

Algoritmos no informados o ciegos: en general más ineficientes en tiempo


y memoria que otros métodos.
Algoritmos informados
Algoritmos heurísticos: destacan las Búsquedas Primero el Mejor
(Algoritmo voraz o Greedy y Algoritmo de búsqueda A*) y de Mejora Iterativa
(Algoritmo Escalada Simple -Hill Climbing- y Escalada por Máxima
Pendiente)
Algoritmos de Búsqueda con adversario: destacan el Minimax y el Poda
alfa-beta.
ALGORITMOS – ciclo Mientras
Mientras [Condición 1] Hacer

Instrucción 1

Instrucción 2


Instrucción n

FinMientras
ALGORITMOS – Busqueda
a) Desarrolle un algoritmo que permita buscar un dato (numero) en un vector.
Datos de entrada:
vec: vector en el que se desea buscar el dato
tam: tamaño del vector.
dato: elemento que se quiere buscar.
Inicio
var pos entero; //posición actual en el vector
pos = 0
Mientras pos < tam hacer
Si vec[pos] == dato
Retorne verdadero y pos;
sino
pos ← pos+1;
FinSi
FinMientras
Retorne falso;
FIN
ALGORITMOS - ordenamiento
a) Desarrolle un algoritmo que permita leer dos números y ordenarlos de
menor a mayor.
Inicio
var A, B, enteros;
”Escriba los valores:”;
A←leer;
B←leer;
Si A ≤ B entonces
”El orden de los números es:”;
Print A B;
Sino
”El orden de los números es:”;
Print B A;
Finsi
FIN
b) Desarrolle un algoritmo que ordene los valores dados en un vector (lista).
Temas – Trabajo (escrito y Exp)
a) Modelos, modelación.
b) Homomorfismo e isomorfismo
c) Lógica y lenguajes formales
d) Algoritmos de búsquedas
e) Algoritmos de ordenamiento
f) Complejidad computacional y algorítmica
g) Programación Orientada a Objetos
h) Programación Orientada a eventos

También podría gustarte