You are on page 1of 2

Dpto.

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.