Codificar un programa modular que llene un vector de enteros al azar, teniendo un menú para seleccionar entre diferentes tamaños e imprimirlos opcionalmente. Los tamaños deberán ser 50, 100, 1000, 5000 y 10000 elementos.
Otro módulo deberá ser el algoritmo de ordenación por inserción y uno más del algoritmo por selección, que vimos en clase—página 71 del libro de Brassard. Dichos módulos de ordenación deberán formar parte del menú y tener como entrada un vector seleccionado de la lista de tamaños anterior y podrá devolverlo tanto en orden ascendente como descendente, desplegando su tiempo de ejecución. Dicho tiempo de ejecución deberá ser desplegado en una tabla para ser comparado con los dos métodos de ordenación.
Pistas:
hay funciones de C y Java ya construidas para generar números aleatorios en determinados rangos (codominios), generalmente llevan un título parecido a random y antes de que éste pueda generar uno, se debe primero establecer una "semilla" inicial con otra función cuyo nombre puede parecerse a randomize.
Sobre el tiempo de ejecución, antes de ejecutar cada algoritmo de ordenación se puede pedir la hora actual del sistema y al finalizar el ordenamiento hacer la diferencia con el tiempo actual del sistema. Para más detalles, puedes buscar tutoriales en la web y/o plantear tus dudas en el blog del curso.
Esperamos este proyecto te sea fructífero para aprovechar mejor el curso y ejercitar tus habilidades de programación y por tu beneficio, no lo dejes al último minuto. Por cierto, la parte de análisis de algoritmos es algo que te da ventaja sobre los programadores.