A menudo, es muy conveniente representar un algoritmo mediante convenciones. Aunque esto no es obligatorio.
Después, se pasa a la codificación del algoritmo en un lenguaje de programación para su puesta en marcha.
Son dos las maneras más comunes de representar un algoritmo: mediante pseudo-código o diagramas de flujo.
Vamos a estudiar un algoritmo de ordenamiento para representarlo y codificarlo en el lenguaje de programación JAVA.
Algoritmo de ordenamiento por Inserción
Este algoritmo resuelve el problema de ordenar una secuencia de números de forma creciente.
Entrada: La secuencia de n números (a1, a2, a3,..., an)
Salida: Otra secuencia de n números (a'1, a'2, a'3,..., a'n), donde se cumple a'1 <= a'2 <= a'3 <= ... <= a'n
Es decir la salida es una secuencia ordenada de los números ingresados.
Para almacenar los n números se usa la estructura arreglo, que es una matriz unidimensional de tamaño n.
El ordenamiento por inserción, es un algoritmo eficiente para la clasificación de números pequeños de elementos. El ordenamiento por inserción funciona de la forma en que muchas personas ordenan una mano de
juego de cartas. Comenzamos con una mano vacía, la izquierda y las cartas boca abajo en la mesa. Luego quitamos una tarjeta de la mesa y la insertamos en la posición correcta en la mano izquierda. Para encontrar la posición correcta para la tarjeta, comparamos con cada uno de los que ya están en la mano de las tarjetas, de derecha a izquierda.
El pseudocódigo para el ordenamiento por inserción que muestra el libro es:
Una adaptación de este pseudocodigo para probarlo en el programa PSeInt es:
La ejecución de este programa PSeInt se muestra a continuación:
El diagrama de flujo del subproceso ordenarPorInsercion es:
El mismo algoritmo codificado en el lenguaje de programación JAVA sería:
La ejecución de este programa es:
Problema
Elabore un informe donde se explique, represente(pseudocódigo) y codifique(JAVA) el algoritmo de ordenamiento por mezcla(Merge). Utilice el pseudocódigo del libro y realice un análisis similar a este.
Entregable
ADALab01_PATERNO_MATERNO.zip
Informe.pdf
insercion.java (código fuente)
insercion.txt (Ejecución en consola: Caso del libro)
merge.java (código fuente)
merge.txt (Ejecución en consola: Caso del libro)