CURSO ALGORITMOS

CURSO PERSONALIZADO DE ALGORITMOS


Esta pagina contiene todas las respuestas a las preguntas hacerca de algoritmos.Explorela y aprenda


CONCEPTOS BÁSICOS

Un algoritmo es un conjunto de operaciones y procedimientos que deben
seguirse para resolver un problema. La palabra algoritmo se deriva del nombre latinizado del gran Matemático Árabe Mohamed Ibn Al Kow Rizmi,
el cual escribió sobre los años 800 y 825 su obra Quitad Al Mugabala, donde se recogía el sistema
de numeración hindú y el concepto del cero. Fue Fibinacci, el que tradujo la obra al latín y el inicio
con la palabra: Algoritmi Dicit.

El lenguaje algorítmico es aquel por medio al cual se realiza un análisis previo del problema a resolver y encontrar
un método que permita resolverlo. El conjunto de todas las operaciones a realizar y el orden en
que se deben efectuarse, se le denomina algoritmo.
Es un método para resolver un problema mediante una serie de datos precisos, definidos y finitos.

En palabras sencillas, un algoritmo es una serie de instrucciones que realizadas en orden conducen a la solución
de un problema determinado. También se puede decir que un algoritmo es la fase preliminar a escribir
un programa en cualquier lenguaje de programación, por lo que la forma de escribirlo puede ser
muy personal según el programador que lo esté diseñando, pero en general se debe hacer en una
forma tan clara que cualquier otro programador pueda coger dicho algoritmo, entenderlo
fácilmente y poderlo traducir a su lenguaje de programación favorito.

El programador de computadoras es antes que nada una persona que resuelve problemas, por lo que para llegar a ser un programador
eficaz se necesita aprender a resolver problemas de un modo riguroso y sistemático.
A la metodología necesaria para resolver problemas mediante programas se denomina Metodología
de la Programación. El eje central de esta metodología es el concepto,
ya tratado, de algoritmo.

Un algoritmo es un método para resolver un problema. Aunque la popularización del término ha llegado con el advenimiento
de la era informática, algoritmo proviene de Mohammed al-Khowarizmi, matemático
persa que vivió durante el siglo IX y alcanzo gran reputación por el enunciado de las reglas para sumar, restar,
multiplicar y dividir números decimales; la traducción al latín del apellido de la palabra algorismus
derivó posteriormente en algoritmo. Euclides, el gran matemático griego
(del siglo IV antes de Cristo) que inventó un método para encontrar el máximo común divisor de dos números,
se considera con Al-Khowarizmi el otro gran padre de la algoritmia (ciencia que trata de los algoritmos).

El profesor Niklaus Wirth, inventor de Pascal, Modula-2 y Oberon, titulo uno de sus mas famosos libros,
Algoritmos + Estructuras de Datos = Programas, significándonos que solo se puede llegar a realizar un buen programa
con el diseño de un algoritmo y una correcta estructura de datos.
Esta ecuación será de una de las hipótesis fundamentales consideradas en esta obra.

La resolución de un problema exige el diseño de un algoritmo que resuelva el problema propuesto.

Los pasos para la resolución de un problema son:
1. Diseño de algoritmo, que describe la secuencia ordenada de pasos que conducen a la
2. solución de un problema dado. (Análisis del problema y desarrollo del algoritmo).
Expresar el algoritmo como un programa de lenguaje de programación adecuado. (Fase de codificación.)
3. Ejecución y validación del programa por la computadora.

Para llegar a la realización de un programa es necesario el diseño previo de algoritmo, de modo que sin
algoritmo no puede existir un programa.Los algoritmos son independientes tanto del lenguaje
de programación en que se expresan como de la computadora que lo ejecuta. En cada problema el
algoritmo se puede expresar en un lenguaje diferente de programación y ejecutarse en
una computadora distinta; sin embargo, el algoritmo será siempre el mismo.
Así, por ejemplo, en una analogía con la vida diaria, una receta de un plato de cocina se puede
expresar en español, ingles o francés, pero cualquiera que sea el lenguaje, los pasos
para la elaboración del plato se realizaran sin importar el idioma del cocinero.

En la ciencia de la computación y en la programación, los algoritmos son más importantes que los lenguajes de
programación o las computadoras. Un lenguaje de programación es tan solo un medio para expresar
un algoritmo y una computadora es solo un procesador para ejecutarlo.
Tanto el lenguaje de programación como la computadora son
los medios para obtener un fin:
conseguir que el algoritmo se ejecute y se efectúe el proceso correspondiente.

Dada la importancia del algoritmo en la ciencia de la computación, un aspecto muy importante será el diseño de algoritmos.
El diseño de la mayoría de los algoritmos requiere creatividad y conocimientos profundos
de la técnica de la programación. En esencia, la solución de un problema se
puede expresar mediante un algoritmo.

CLASIFICACIÓN DE PROBLEMAS

Los problemas matemáticos se pueden dividir en primera instancia en dos grupos:

* Problemas indecidibles: aquellos que no se pueden resolver mediante un algoritmo.
* Problemas decidibles: aquellos que cuentan al menos con un algoritmo para su cómputo.

Sin embargo, que un problema sea decidible no implica que se pueda encontrar su solución, pues muchos problemas que disponen
de algoritmos para su resolución son inabordables para un computador por el elevado
número de operaciones que hay que realizar para resolverlos.
Esto permite separar los problemas decidibles en dos:

* intratables: aquellos para los que no es factible obtener su solución.
* tratables: aquellos para los que existe al menos un algoritmo capaz de resolverlo en un tiempo razonable.

Los problemas pueden clasificarse también atendiendo a su complejidad. Aquellos problemas para los que se conoce
un algoritmo polinómico que los resuelve se denominan clase P.
Los algoritmos que los resuelven son deterministas. Para otros problemas, sus mejores algoritmos conocidos son no deterministas.
Esta clase de problemas se denomina clase NP. Por tanto, los problemas de la clase P
son un subconjunto de los de la clase NP, pues sólo cuentan con una
alternativa en cada paso.

REGRESAR ARRIBA


REGRESAR A LA PAGINA INICIAL