Algoritmos y Estructura de Datos

6
ALGORITMOS Y ESTRUCTURA DE DATOS Conceptos fundamentales Introducción: La principal razón para aprender a programar es utilizar la computadora como una herramienta para resolver problemas. Sin embargo no es suficiente con aprender las reglas de un lenguaje de programación para escribir programas, también es necesario hallar la solución del problema independientemente del uso de las computadoras y de los lenguajes de programación. La solución a los problemas esta dada por un algoritmo. Asi, los algoritmos, junto a las estructuras de datos, constituyen la solución de los problemas. El termino algoritmo se estableció en honor a Muhammad ibnMusa al-Jwarizmi, matemático árabe del siglo IX quien propuso que la solución de muchos problemas se puede obtener con un conjunto de soluciones menores. 1. Procesamiento Automatizado De Información Los actuales sistemas de información están basados en el uso de computadoras. Estas, son maquinas digitales (sincrónicas de múltiples propósitos) que ejecutan conjuntos o secuencias de operaciones matemáticas y lógicas, utilizando el sistema binario de numeración.

description

Algoritmos y Estructura de Datos

Transcript of Algoritmos y Estructura de Datos

ALGORITMOS Y ESTRUCTURA DE DATOS

Conceptos fundamentales Introduccin:

La principal razn para aprender a programar es utilizar la computadora como una herramienta para resolver problemas. Sin embargo no es suficiente con aprender las reglas de un lenguaje de programacin para escribir programas, tambin es necesario hallar la solucin del problema independientemente del uso de las computadoras y de los lenguajes de programacin. La solucin a los problemas esta dada por un algoritmo. Asi, los algoritmos, junto a las estructuras de datos, constituyen la solucin de los problemas. El termino algoritmo se estableci en honor a Muhammad ibnMusa al-Jwarizmi, matemtico rabe del siglo IX quien propuso que la solucin de muchos problemas se puede obtener con un conjunto de soluciones menores.1. Procesamiento Automatizado De Informacin

Los actuales sistemas de informacin estn basados en el uso de computadoras. Estas, son maquinas digitales (sincrnicas de mltiples propsitos) que ejecutan conjuntos o secuencias de operaciones matemticas y lgicas, utilizando el sistema binario de numeracin. Son herramientas poderosas para la automatizacin de la resolucin de problemas, pero ello depende de la capacidad de su programa. Generalmente a los sistemas de procesamiento automatizado de informacin, los llamamos sistemas de informacin. As, los sistemas de informacin son un conjunto de elementos relacionados que actan como un todo, cuyo objetivo es la obtencin de informacin y est compuesto por elementos de hardware y software. El hardware es el conjunto de componentes fsicos que componen al sistema. El software es un conjunto de componentes lgicos que controlan el funcionamiento del hardware y otorgan a las computadoras la capacidad de ser maquinas con mltiples propsitos.

Esto significa que para dotar a la maquina la capacidad de resolver mltiples problemas, es necesario escribir un programa (software) que los solucione de forma especfica. Para ello existen pasos previos como ser:

Definicin del problema del mundo real;

Anlisis del problema;

Diseo de la solucin;

Diseo de la solucin informtica.

a. Definicin del problema.

Definir el problema significa comprenderlo, circunscribirlo, acotarlo (es imposible que hallemos una solucin sino sabemos cul es el problema). El proceso de analizar el mundo real para interpretar los aspectos esenciales de un problema y expresarlo en trminos precisos se llama abstraccin. b. Anlisis del problema.

Una vez que se defini el problema hay que analizarlo. Se busca determinar claramente el contexto (entorno) del problema y describir el estado futuro deseado una vez que se soluciono el problema. Se debe determinar qu datos son necesarios para solucionar el problema y que informacin debe proporcionar la solucin. c. Solucin del problema.

La solucin de todo problema lo constituye un algoritmo. Un algoritmo es un conjunto ordenado de pasos que conducen a la solucin de un problema. d. Solucin informtica.

El algoritmo es la solucin general sin tener en cuenta un lenguaje de programacin ni una maquina en especial. Cuando un algoritmo se define en trminos de un lenguaje de programacin especfico para una maquina especfica, estamos en presencia de un programa. Este constituye la solucin informtica de un problema. La diferencia entre algoritmo y programa radica en el hecho de que los algoritmos se especifican en trminos ideales; mientras que los programas se especifican bajo las limitaciones impuestas por lenguajes de programacin y maquinas particulares. 2. Concepto de algoritmo.

La solucin de un problema exige el diseo del algoritmo. Un algoritmo es la especificacin de la secuencia ordenada de pasos a realizar para solucionar un problema en un tiempo finito. Est vinculado a una maquina abstracta. Por lo tanto, los algoritmos son independientes de los lenguajes de programacin y de las maquinas en las que se lo ejecutara. Est constituido por un conjunto de acciones. Una accin es un hecho o acontecimiento que sucede en un periodo de tiempo finito, es llevado a cabo por un ejecutante y tiene un objetivo. La unin de varias acciones organizadas que se ejecutan en un tiempo finito se denomina proceso. Tanto los procesos como las acciones son componentes de los algoritmos.

a. Caractersticas de los algoritmos.

Todo algoritmo debe cumplir con tres caractersticas:

Debe ser preciso. No debe existir accin alguna que presente ambigedades en cuanto a su estado previo y su estado posterior.

Debe estar definido. Si todas sus acciones son precisas y se sigue dos veces el mismo algoritmo con los mismos datos, se debe obtener el mismo resultado cada vez.

Debe ser finito. Los resultados de la ejecucin de un algoritmo se deben obtener en un tiempo finito. Todo algoritmo debe tener un inicio y un fin.

b. Diseo de algoritmos.

En primer trmino, es necesario definir y analizar el problema a resolver. Una buena comprensin del problema, mas la descripcin detallada de entradas (datos necesarios) y salidas requerida (datos requeridos del proceso) son los requisitos ms importantes para hallar una solucin del problema. Los datos proporcionados al algoritmo constituyen su entrada y los datos producidos por el su salida. Una buena estrategia para resolver problemas complejos es descomponer al problema en varios problemas menores ms fciles de solucionar. La descomposicin del problema en otros ms simples y as sucesivamente hasta hallar una solucin a ellos, esto se denomina diseo descendente (top-down design).