Skip to content

Instantly share code, notes, and snippets.

@leopic
Created December 12, 2012 00:53
Show Gist options
  • Save leopic/4263867 to your computer and use it in GitHub Desktop.
Save leopic/4263867 to your computer and use it in GitHub Desktop.
> # Pregunta No 1 (24 Puntos)
> Se quiere representar la información que se maneja en el área de servicio al cliente de un
> banco. En el banco hay N cajeros, cada cajero puede atender M clientes, pero sólo uno a la
> vez. Cuando un cajero atiende a un cliente debe dejar el recibo de la transacción en un estante
> especial, de tal manera que el último recibo debe ser el más fácil de acceder después. Los
> clientes pueden tener varias cuentas en el banco, y se quiere llevar información de todas ellas.
> Se requiere acceder a la información de las cuentas lo más eficiente posible. Todas las cuentas
> tienen un número único de identificación, el banco distingue cuáles son de dólares y cuáles son
> en colones, por el número de la cuenta, por lo tanto no hay que guardar esta información.
> a) Defina las estructuras de datos usaría para representar la información descrita
> anteriormente del banco con respecto a los cajeros, clientes, recibos y cuentas.
> b) Explique por qué escogió cada una de las estructuras mencionadas en el punto a.
a) Estas son las estructuras que se eligieron:
-- Cajeros: Lista Enlazada
-- Clientes: Cola
-- Recibos: Pila
-- Cuentas: Lista Enlazada
b) Explicacion
-- Cajeros, Lista Enlazada
Debido a la naturaleza dinamica de los Cajeros, una lista provee flexibilidad para agregar y eliminar
elementos y la facilidad de acceder a cualquiera de ellos.
-- Clientes, Cola
Para intentar restaurar la igualdad en el universo, el primer elemento que ingresa es el primer
elemento que sale, al igual que los cajeros, tiene flexibilidad con respecto a la cantidad de
elementos que puede tener, FIFO.
-- Recibos, Pila
En este caso, la igualdad en el universo es secundaria, queremos tener acceso al ultimo elemento
ingresado de primero, entonces el model LIFO (ultimo en ingresar, primero en salir) es justo lo
que ocupamos para este caso.
-- Cuentas, Lista Enlazada
Ya que el acceso a un elemento X no es prioridad pero la cantidad debe de ser flexible, utilizamos de
nuevo una lista enlazada, inclusive podriamos usar una lista enlazada doble para agilizar la
busqueda de elementos.
> # Pregunta No 4 (22 Puntos)
> Muestre gráficamente (o en una tabla) TODO el proceso de ordenamiento de la siguiente lista
> de números enteros: 12, 34, 3, 1, 55, 90, 100, 23, 2, 10
> Primero elija el método de ordenamiento que va a utilizar: ShellSort, MergeSort o QuickSort
Se usara ShellSort.
El arreglo tiene 10 elementos, por lo que el 'brinco' (gap) inicial sera de 5, posteriormente de 2
y finalmente de 1. Se requiere de un total de 22 'vueltas' para ordenar completamente el arreglo,
aca se encuentra la salida, por cada vuelta para el metodo:
cuando el gap es 5:
1) [12, 34, 3, 1, 55, 90, 100, 23, 2, 10]
2) [12, 34, 3, 1, 55, 90, 100, 23, 2, 10]
3) [12, 34, 3, 1, 55, 90, 100, 23, 2, 10]
4) [12, 34, 3, 1, 55, 90, 100, 23, 2, 10]
5) [12, 34, 3, 1, 10, 90, 100, 23, 2, 55]
cuando el gap es 2:
1) [3, 34, 12, 1, 10, 90, 100, 23, 2, 55]
2) [3, 1, 12, 34, 10, 90, 100, 23, 2, 55]
3) [3, 1, 10, 34, 12, 90, 100, 23, 2, 55]
4) [3, 1, 10, 34, 12, 90, 100, 23, 2, 55]
5) [3, 1, 10, 34, 12, 90, 100, 23, 2, 55]
6) [3, 1, 10, 23, 12, 34, 100, 90, 2, 55]
7) [2, 1, 3, 23, 10, 34, 12, 90, 100, 55]
8) [2, 1, 3, 23, 10, 34, 12, 55, 100, 90]
cuando el gap es 1:
1) [1, 2, 3, 23, 10, 34, 12, 55, 100, 90]
2) [1, 2, 3, 23, 10, 34, 12, 55, 100, 90]
3) [1, 2, 3, 23, 10, 34, 12, 55, 100, 90]
4) [1, 2, 3, 10, 23, 34, 12, 55, 100, 90]
5) [1, 2, 3, 10, 23, 34, 12, 55, 100, 90]
6) [1, 2, 3, 10, 12, 23, 34, 55, 100, 90]
7) [1, 2, 3, 10, 12, 23, 34, 55, 100, 90]
8) [1, 2, 3, 10, 12, 23, 34, 55, 100, 90]
9) [1, 2, 3, 10, 12, 23, 34, 55, 90, 100]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment