Cátedra: Wachenchauzer
Fecha: Primera Oportunidad - (Primer Cuatrimestre) 2012
Día: 18/06/2012
Resolvé los siguientes problemas en forma clara y legible, respetando sangrías e incluyendo la documentación necesaria. Si te parece que los comentarios no son suficientemente explicativos, podés agregar una descripción del funcionamiento del código. Podés escribir tantas funciones auxiliares como creas necesarias.
Implementar en forma recursiva la función: maximo(lista, inicio, fin) que devuelve el valor del mayor elemento de una lisa. Inicio y fin son los indices del primer y último elemento de la lista (Por ejemplo: 0 y len(lista) - 1)
a) ¿Cómo debería ser un arreglo con números del 1 al 10 para obtener la peor performance en una implementación de quicksort que elige siempre como pivote al último elemento de la lista en vez del primero? Justifique.
b) ¿Qué método de ordenamiento eligiría para ordenar ascendentemente un arreglo que ya está ordenado pero en forma descendente? ¿Por qué?. Asumiendo que fueran muchos elementos, ¿eligiría este método de ordenamiento o utilizaría una función para invertirlos in-place (en el mismo arreglo)?
Escribir en C una función que imprima un triángulo isósceles de alto y ancho n. Para n = 6 sería:
* ** *** **** ***** ******