El documento presenta 6 ejercicios relacionados con métodos de ordenación interna y externa. Los ejercicios incluyen implementar algoritmos de burbuja, selección, selección rápida y ordenación externa usando archivos de acceso directo. Se pide justificar las decisiones de diseño adoptadas considerando factores como la comparación de cadenas y la eficiencia espacial.
El documento presenta 6 ejercicios relacionados con métodos de ordenación interna y externa. Los ejercicios incluyen implementar algoritmos de burbuja, selección, selección rápida y ordenación externa usando archivos de acceso directo. Se pide justificar las decisiones de diseño adoptadas considerando factores como la comparación de cadenas y la eficiencia espacial.
El documento presenta 6 ejercicios relacionados con métodos de ordenación interna y externa. Los ejercicios incluyen implementar algoritmos de burbuja, selección, selección rápida y ordenación externa usando archivos de acceso directo. Se pide justificar las decisiones de diseño adoptadas considerando factores como la comparación de cadenas y la eficiencia espacial.
Ciencias de la Computación Laboratorio de Programación II. Elena García Barriocanal 1
EJERCICIOS Tema 4 (Métodos de ordenación interna y
externa)
1. Implemente el algoritmo de la burbuja de manera que los elementos ordenados
queden a la derecha del vector.
2. Realice dos implementaciones del algoritmo de selección directa de manera que
en la primera implementación se realice la selección del elemento mayor en cada iteración y en la segunda la selección del menor.
3. Se dispone de una colección de 10 CDs de los cuales se guarda la siguiente
información: a. Nombre del grupo o intérprete b. Fecha de edición c. Firma discográfica d. Duración del CD Se quiere implementar un programa que ordene la colección por nombre de grupo o intérprete teniendo en cuenta que ante dos CDs del mismo grupo estos deben aparecer ordenados por fecha de edición. El programa debe realizar la ordenación lo más rápidamente posible. Justifique las decisiones adoptadas. Tenga en cuenta que el nombre de algunos intérpretes puede no estar formado por caracteres ASCII, cabe la posibilidad de que la comparación de cadenas de los nombres de grupo o intérprete sea costosa. A efectos de la implementación que se debe realizar supóngase que todos los nombres de intérprete se pueden comparar mediante operadores relacionales, aunque el diseño del algoritmo contemple las restricciones del enunciado.
4. Implemente un programa que resuelva el problema de la Selección: dado un
array de N elementos, encontrar el k-ésimo más pequeño. Por ejemplo, si tenemos (4, 6, 1, 3, 8, 34, 76, 12), el 3-ésimo más pequeño será el 4. Obviamente, podríamos ordenar los elementos para tal fin, pero la selección puede resolverse de manera más eficiente. Basándonos en QuickSort, podemos resolver el problema en un tiempo esperado O(n). Se debe realizar la codificación de un algoritmo que resuelva el problema de la selección, justificando su complejidad temporal.
5. Algunas compañías distribuidoras de películas permiten descargarse por
Internet fragmentos de algunas películas. Para cada película tienen almacenado su título, el nombre del director, el nombre de la productora y el fichero en AVI con las imágenes. Cada vez que un usuario realiza una búsqueda, deben enviarle la lista ordenada según el criterio elegido por el usuario (alfabético por director, por productora, por título, etc), por lo que quieren que la ordenación sea rápida. Por otra parte, sabiendo que cada registro ocupa mucho espacio, desean poder enviar al usuario el listado ordenado sin cambiar ningún registro de posición, sin hacer copias innecesarias de información y de manera que, cuando el usuario elija la película que desea ver, se localice en tiempo constante. Realice un programa que permita llevar a cabo dichas funcionalidades, justificando las decisiones adoptadas. Dpto. Ciencias de la Computación Laboratorio de Programación II. Elena García Barriocanal 2
A efectos prácticos puede suponerse que el campo que contiene el
fichero avi sólo contiene su nombre, aunque el diseño del algoritmo se realice sobre el problema real descrito en el enunciado. 6. Se desea realizar un programa en Pascal que dado el fichero de acceso directo de datos de proveedores de una floristería propuesto en el ejercicio 3 de la hoja de problemas del tema uno, permita realizar la ordenación de dicho fichero bien sea por nombre del producto que el proveedor suministra a la floristería o bien por el nombre del proveedor, según elija el usuario de la aplicación. Los datos que se almacenaban en dicho fichero de acceso directo son: nombre del proveedor, teléfono del proveedor, dirección del proveedor, NIF del proveedor, artículo que suministran a la floristería y nombre de la persona de contacto.