2018 2TallerFinalAlgoritmos4
2018 2TallerFinalAlgoritmos4
ALGORTMOS Y PROGRAMACION 4
ORDENAMIENTO Y BUSQUEDA
1. Escribir un método que elimine los elementos duplicados de un vector ordenado. ¿Cuál es la
eficiencia del método?
2. Un vector contiene los elementos mostrados a continuación. Los primeros dos elementos se
han ordenado utilizando un algoritmo de inserción. ¿Cuál será el valor de los elementos del
vector después de tres pasadas más del algoritmo?
3 13 8 25 45 23 98 58
3. Dada la siguiente lista
47 3 21 32 56 92
Después de dos pasadas de un algoritmo de ordenación, el arreglo queda así:
3 21 47 32 56 92
¿Qué algoritmo de ordenación se está utilizando (selección, burbuja o inserción)?
Justifique la respuesta.
4. Un arreglo contiene los elementos indicados mas abajo. Utilizando el algoritmo de inserción
Shell, encuentre las pasadas y los intercambios que se realizan para su ordenación.
8 43 17 6 40 16 18 97 11 7
5. Partiendo del mismo arreglo del ejercicio anterior. Encuentre las particiones e intercambios
que realiza el algoritmo de ordenación Quicksort para el ordenamiento
6. Explique con sus palabras y con un ejemplo el método de ordenación Radixsort. Escribir la
función de ordenación correspondiente al método Radixsort para poner en orden alfabético
una lista de n nombres.
7. Un arreglo contiene los elementos indicados mas abajo. Utilizando el algoritmo de búsqueda
binaria, trazar las etapas necesarias para encontrar el número 88.
8 13 17 26 44 56 88 97
8. Dado un vector x de n elementos reales, donde n es impar, diseñar un método que calcule y
devuelva la mediana de ese vector. La mediana es el valor tal que la mitad de los números son
mayores que él y la otra mitad son menores
9. Dadas las notas de los alumnos de un carrera en el primer semestre en 5 diferentes
asignaturas calcular la mediana de cada alumno, la media de cada asignatura, la media total
de la clase y ordenar los alumnos por orden descendiente de notas medias individuales.
Explique el método de ordenamiento. Uutilizar como algoritmo de ordenación el método de
Shell.
10. El archivo F, almacena registros con un campo clave de tipo entero. Suponer que la secuencia
de claves que se encuentra en el archivo es la siguiente:
14 27 33 5 8 11 23 44 22 31 46 7 8 11 1 99 23 40 6 11 14 17
Aplicando el algoritmo de mezcla directa, realizar la ordenación del archivo y determinar
el número de pasadas necesarias.
11. Se tiene guardado en un archivo a los habitantes de la comarca de Mogotes. Los datos de cada
persona son los siguientes: primer apellido (campo clave), segundo apellido (campo
secundario), edad, años de estancia y estado civil. Escribir un programa para ordenar el
archivo por el método de mezcla equilibrada múltiple. Utilizar 6 archivos auxiliares.
Página 1 de 4
27/02/19 MARN
FUNCIONES HASH
12. Una tabla hash se ha implementado con exploración lineal, considerando que actualmente el
factor de carga es 0.30. ¿Cuál es el numero esperado de posiciones de la tabla que se prueban
en una búsqueda de una clave, con éxito y sin éxito?
13. Se va a utilizar como función hash el método mitad del cuadrado. Si el tamaño de la tabla es
de 100, encontrar los índices que corresponden a las claves 2134, 5231, 2212, 1011.
14. Escribir el método estaVacia() para determinar que una matríz dispersa enlazada no tiene
elementos asignados.
15. Empleando una tabla hash con exploración cuadrática para almacenar 1000 cadenas de
caracteres, el máximo valor que se quiere alcanzar del factor de carga es 0.6; suponiendo que
las cadenas tienen un máximo de 12 caracteres, calcular:
a) El tamaño de la tabla.
b) La memoria total que necesita la tabla.
c) S la tabla está implementada con una lista, escribir el método para averiguar si una
clave está en la tabla.
16. Se define el índice radial de una Tabla Hash abierta como el número de campos de la tabla por
el número de elementos de la lista enlazada con mayor número elementos presentes en la
tabla. Diseñar un algoritmo para calcular tal índice radial.
GRAFOS
17. Un grafo está formado por los vértices v = {A, B, C, D, E}, su matriz de adyacencia, suponiendo
los vértices numerados del 0 al 4 respectivamente, es:
0 1 1 1 0
1 0 1 0 1
M =
1 1 0 1 1
0 1 1 0 1
0 1 1 0 0
Página 2 de 4
27/02/19 MARN
.
20. Dado el grafo descrito en el problema anterior. Escriba un programa para representarlo
mediante listas enlazadas de tal forma que cada nodo de la lista directorio contenga dos listas:
una que contiene los arcos que salen del nodo y otra que contiene los arcos que terminan en
el nodo.
21. Explique con sus palabras los problemas especiales vistos en clase
CONJUNTOS
Se tiene un conjunto con todas las secuencia de los dados, escribir métodos para:
22. Un jugador debe lanzar dos dados numerados de 1 a 6, y su puntaje es la suma de los valores
obtenidos.
Un puntaje dado puede ser obtenido con varias combinaciones posibles. Por
ejemplo, el puntaje 4 se logra con las siguientes tres combinaciones: 1+3, 2+2 y
3+1.
Ingrese el puntaje: 4
Hay 3 combinaciones para obtener 4
Ingrese el puntaje: 11
Hay 2 combinaciones para obtener 11
Ingrese el puntaje: 17
Hay 0 combinaciones para obtener 17
23. Dado otro conjunto de dados decir hallar la diferencia con el conjunto de todos los dados
24. En la representación binaria un conjunto se representa con la siguiente cadena:
A=1001111110000000111110
B=00111111111001
Calcular: C=AUB
D=A diferencia simétrica B
25. Un MultiConjunto o bolsa es un tipo abstracto de datos que especifica una colección de
elementos en la que, a diferencia del Conjunto, pueden existir ocurrencias repetidas de los
Página 3 de 4
27/02/19 MARN
Página 4 de 4