Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1. OBJETIVOS
2. CONSULTA PREVIA
3. FUNDAMENTO TEORICO
Al momento de trabajar con arreglos, no todo se centra en inicializar, llenar y mostrar su información, en la mayoría
de situaciones los datos se guardaron normalmente y el mayor interés es mostrar la información según un criterio
especifico y no como quedaron almacenados desde la posición cero, hasta el tamaño – 1. Las consideraciones
necesarias al momento de ordenar un arreglo son (Almeida, 1993):
Los ordenamientos que se pueden presentar en orden ascendente y descendente.
Los valores repetidos quedan uno al lado del otro en posiciones continuas.
Los ordenamientos se aplican en arreglos con tipos de datos carácter o numérico.
METODO BURBUJA
Se debe seleccionar primero un criterio de ordenamiento, sea de mayor a menor o de menor a mayor. Para la
explicación tomamos la situación de ordenar de menor a mayor, por lo que se debe:
Recorrer el arreglo buscando el elemento mayor de toda la lista y colocarlo en la última posición (tamaño
– 1).
Como el número mayor ya se encuentra en la última posición, ahora es necesario ordenar las tamaño-2
posiciones restantes, por lo que se debe buscar el número mayor en estas y colocarlo en la posición
tamaño-2.
Seguido se deben ordenar entonces las tamaño-3 posiciones restantes, buscando el número mayor en
estas y colocarlo en la posición tamaño-3.
Los siguientes pasos son consecutivos, hasta llegar a la posición inicial (cero).
Comparando la posición 0 con la 1: Guardamos el valor del dato a comparar de la primera posición, para
este caso 11 (información en azul), y lo comparamos con la siguiente que es el 15 (información en verde),
si el dato que se está comparando es mayor que el siguiente, se intercambia de posición, si no, como es
en este caso (11 no es mayor a 15), saltamos una posición en el arreglo y realizamos nuevamente una
comparación. Comparaciones realizadas 1.
POSICIÓN 0 1 2 3 4 5 6
INFORMACIÓN 11 15 19 17 16 6 14
Comparando la posición 2 con la 3: En este caso el número a comparar que es el 19, es mayor que el
número 17 siguiente. Comparaciones realizadas 3.
POSICIÓN 0 1 2 3 4 5 6
INFORMACIÓN 11 15 19 17 16 6 14
Por lo que es necesario guardar la información de cada uno y realizar un intercambio, 17 pasa a la
posición 2 y 19 pasa a posición 3.
POSICIÓN 0 1 2 3 4 5 6
INFORMACIÓN 11 15 17 19 16 6 14
Comparando la posición 5 con la 6: como las comparaciones a realizar en este primer paso deben ser
igual al tamaño-1, esta sería la última a realizar y como 19 mayor a 14, se debe realizar un intercambio.
Comparaciones realizadas 6 = tamaño-1, fin de la acción.
POSICIÓN 0 1 2 3 4 5 6
INFORMACIÓN 11 15 17 16 6 14 19
Acción 2: repetir el proceso recorriendo desde el inicio la lista, pero en este caso llevar el número mayor a la
penúltima posición tamaño-2 (para este ejemplo = 7-2 = 5).
POSICIÓN 0 1 2 3 4 5 6
INFORMACIÓN 11 15 16 6 14 17 19
Acción 3: el número de veces (acciones) que se debe mover el valor mayor encontrado a las posiciones finales,
es del tamaño-1. Para saber hasta qué posición comparar en cada acción, es necesario aplicar una fórmula que
sea común a todas las situaciones, la cual consiste en restar el número de la acción al tamaño, lo que genera la
posición donde colocar el número mayor encontrado. Para el presente ejemplo se busca el número mayor desde
la posición 0 hasta la posición tamaño-3 (para este ejemplo 7-3 = 4 posición).
POSICIÓN 0 1 2 3 4 5 6
INFORMACIÓN 11 15 6 14 16 17 19
En el caso que se desee presentar el arreglo en orden ascendente, la lógica es similar a la anterior, con la
diferencia que se deben organizar los números menores en las posiciones finales del arreglo y no los mayores
como observamos en el ejemplo anterior.
Ejemplo 1:
Crear un arreglo del tamaño que el usuario desee, llenarlo con valores aleatorios entre 0 y 100, imprimirlo y
ordenarlo de:
menor a mayor.
mayor a menor.
Mostrar cada arreglo justo después de las organizaciones realizadas.
Desarrollando los análisis mencionados en guías anteriores, la solución al problema del ejemplo 1 es:
Pseudocódigo:
Diagrama de flujo:
Variables utilizadas:
tamanoArreglo = número de elementos del arreglo.
accion = cuenta las acciones a realizar y a su vez ayuda a recorrer la lista, para saber la última posición
donde ubicar el dato mayor o menor de cada acción.
comparacion = contador de comparaciones en cada acción, desde la posición 0 hasta la posición
tamanoArreglo-accion;
auxiliar = auxiliar para realizar el intercambio de elementos.
NOTA: observar detalladamente como en el primer proceso de ordenamiento ascendente se aplicó un algoritmo
muy similar a la explicación paso a paso, ya para el ordenamiento descendente se ajustaron más las condiciones
de terminación de los ciclos.
Consiste en una variante del método burbuja, ya que busca llevar el valor máximo al final si se está organizando
de manera ascendente, o llevar el valor mínimo a la última posición si se refiere al orden descendente. Las
acciones a realizar son:
Se tiene una variable de control tipo lógica, la cual representa el interruptor y permite conocer si el arreglo
está o no organizado.
Se realizan intercambio de valores siempre que exista una variante en los valores (es decir si se es mayor
para el caso de ordenar crecientemente o caso si son menores para el orden decreciente).
Caso que exista un intercambio de valores, se reasigna el valor de interruptor y se vuelve a recorrer la
lista, desde la primera posición hasta la última, comparando de dos en dos.
El proceso se repite siempre que existen intercambio de elementos.
No se producen cambios si la lista esta ordenada.
Ejemplo 2:
Crear un arreglo del tamaño que el usuario desee, llenarlo con valores aleatorios entre 0 y 100, imprimirlo y
ordenarlo de menor a mayor e imprimirlo.
Desarrollando los análisis mencionados en guías anteriores, la solución al problema del ejemplo 1 es:
Pseudocódigo:
Diagrama de flujo
Este método es la unión de los dos anteriores y realiza una mejora en ambos casos. Los pasos que optimizan
son:
mejora en el método burbuja el no realizar comparaciones adicionales si ya una parte del arreglo se
encuentra ordenada.
Mejora en el método switch el no tener que comparar siempre hasta el último elemento.
Ejemplo 3
Crear un arreglo del tamaño que el usuario desee, llenarlo con valores aleatorios entre 0 y 100, imprimirlo y
ordenarlo de menor a mayor e imprimirlo.
Desarrollando los análisis mencionados en guías anteriores, la solución al problema del ejemplo 1 es:
Pseudocódigo
Diagrama de flujo
Es un método que se realiza desde la posición 0, hasta la posición tamaño-2, es decir va hasta el penúltimo index.
Consiste en dar por hecho que la primera posición tiene el mínimo valor y lo compara con el resto de datos del
arreglo, si se llega a encontrar el caso que algún número resulte menor al primero, se realiza un intercambio.
Pasada esta primera parte, se sigue comparando el segundo número con el resto del arreglo, presentando un
cambio si se llegase a encontrar que exista uno menor a este. El procedimiento se repite hasta la posición tamaño
menos 2 ya que se entiende que si todas las posiciones anteriores están ordenas, por descarte la última lo estará
también.
Ejemplo 4
Crear un arreglo del tamaño que el usuario desee, llenarlo con valores aleatorios entre 0 y 100, imprimirlo y
ordenarlo de menor a mayor e imprimirlo.
Desarrollando los análisis mencionados en guías anteriores, la solución al problema del ejemplo 1 es:
Pseudocódigo
Diagrama de Flujo
Variables
arreglo = nombre del arreglo.
tamanoArreglo = número de elementos del arreglo.
auxiliar = para realizar los intercambios.
accion = contador de las acciones.
minimo = recorre la lista desde accion+1 hasta tamanoArreglo-1, comparando para encontrar el mínimo.
posMinimo = guarda la posición del mínimo, coincide con el número de acción.
En este tipo de ordenamiento se considera que el primero está en el lugar correcto, luego se ordena el segundo
respecto al primero, y se sigue así con el tercero respecto a los otros dos, hasta comparar cada elemento en
comparación a los anteriores del arreglo.
Ejemplo 5
Crear un arreglo del tamaño que el usuario desee, llenarlo con valores aleatorios entre 0 y 100, imprimirlo y
ordenarlo de menor a mayor e imprimirlo.
Desarrollando los análisis mencionados en guías anteriores, la solución al problema del ejemplo 1 es:
Pseudocódigo
Diagrama de Flujo
METODO SHELL
Se deriva del método por inserción. Consiste en ordenar los elementos según una distancia, que para el primer
paso resulta ser la mitad del arreglo. Los pasos siguientes (acciones) consisten en organizar secciones del
arreglo, en los cuales la distancia a ordenar se recalcula con la reducción a la mitad de la primera sección que se
tomó, este proceso se repite cuantas veces sea necesario hasta que el valor de la mitad llega a ser menor que la
unidad, ya que al llegar a este punto, es lógico que el arreglo ya este ordenado. En el caso que el tamaño del
arreglo sea impar, la primera distancia a ordenar será la parte entera del tamaño del arreglo dividido en 2.
Ejemplo 6
Crear un arreglo del tamaño que el usuario desee, llenarlo con valores aleatorios entre 0 y 100, imprimirlo y
ordenarlo de menor a mayor e imprimirlo.
Desarrollando los análisis mencionados en guías anteriores, la solución al problema del ejemplo 1 es:
Pseudocódigo
Diagrama de Flujo
Variables
5. PROCEDIMIENTO O METODOLOGÍA
6. RESULTADOS
Realice un programa en PSeInt para dar solución a cada uno de los siguientes ejercicios (un archivo .PSC por
cada enunciado):
2. Cargar aleatoriamente un arreglo con 1000 elementos con las vocales y contar las veces que aparece la
a.
3. Generar aleatoriamente un arreglo A de 10 elementos con valores de 1 a 50. Crear otro arreglo con su
inversa (el primero en el último lugar, el segundo en el penúltimo y así sucesivamente). Hallar la suma
entre ambos arreglos e imprimirla, con el siguiente formato:
ARREGLO A INVERSA SUMA
--- --- ---
--- --- ---
--- --- ---
4. Crear una lista con notas de 100 alumnos. Hallar la media y la desviación de cada nota respecto a la
media e imprimirla.
La media se calcula sumando todas las notas y dividiendo la suma por el número de los alumnos. La
desviación de cada nota respecto a la media es el valor absoluto de la nota menos la media.
5. Crear un arreglo de N elemento con palabras introducidas por teclado. Imprimirla. Ordenarla por la
longitud de cada palabra e imprimirla.
6. Crear una lista de N elementos con palabras introducidas por teclado. Imprimirla. Ordenarlas
alfabéticamente e imprimirla. ¿Cuántas palabras empiezan por a?
11. Crear un arreglo de N elementos. Imprimirlo. Desplazar los elementos una posición hacia la izquierda de
tal forma que el primero pase a la última posición, el segundo a la primera, el tercero a la segunda y así
sucesivamente.
7. BIBLIOGRAFÍA