Вы находитесь на странице: 1из 2

Estructuras de datos, 2do Cuatrimestre de 2010

Trabajo Pr actico # 7
8 de noviembre de 2012
Ejercicio 1 Un algoritmo de ordenamiento estable es aquel que, para dos elementos con id entica prioridad de orden, los dispone en el resultado nal preservando su precedencia en el arreglo de entrada. Por ejemplo, este es un ordenamiento estable: [(Juan 32),(Jose, 25),(Lucas,32))] [(Jose, 25),(Juan 32),(Lucas,32))] y no [(Juan 32),(Jose, 25),(Lucas,32))] [(Jose, 25),(Lucas,32)),(Juan 32)]. Clasique los algoritmos vistos en la teorica entre estables y no estables. Ejercicio 2 Algunos algoritmos de ordenamiento, salvo por unas pocas variables, utilizan solo el arreglo de entrada para trabajar. Estos algortimos se denominan in place (en el lugar). Indique cu ales de los algoritmos vistos en la te orica son in place y cu ales no. Ejercicio 3 Se quiere ordenar, de menor a mayor, un arreglo de elementos que originalmente se encuentra ordenado de mayor a menor. C omo se comportan los algoritmos vistos en la te orica? Dar un algoritmo in place para resolver m as ecientemente este problema. Su algoritmo es estable? Ejercicio 4 Se quiere ordenar de menor a mayor un arreglo de n elementos con las siguientes caracter sticas: hasta una determinada posici on (desconocida) se encuentra ordenado de menor a mayor y luego contiene m elementos desordenados. De un algortimo para ordenar este tipo de arreglos. Si su complejidad no es O(n + m log m), consulte. Ejercicio 5 Ordenar los elementos en una matriz de enteros A de forma, para todo elemento (i, j ) fuera de la u ltima la o columna, A(i, j ) A(i + 1, j + 1). Ejercicio 6

1. Supongamos que se tiene un arreglo de n(potencialmente muy grande) numeros en el rango 1 a 100. Dar un algoritmo que lo ordene ecientemente, aprovechando sus car acter sticas. Cu al es la complejidad de su algoritmo? Es estable? Es in place ? 2. Supongamos ahora que los numeros se encuentran en el rango [k1 . . . k2 ], donde k2 k1 es chico. C omo puede adaptar el algoritmo del item anterior a esta situaci on? C ual es la complejidad? 3. Hasta que diferencia entre k1 y k2 dir a que es mejor utilizar su algoritmo y cu ando es m as eciente alguno de los vistos en la te orica?

P agina 1 de 2

Estructuras de datos, 2do Cuatrimestre de 2010

Ejercicio 7 Se quiere ordenar un conjunto de personas (tuplas con nombre y edad) por edad y, en caso de empate, por nombre. De al menos dos m etodos para hacerlo. Se tiene un arreglo de n umeros naturales que se quiere ordenar por frecuencia, y en caso de igual frecuencia, por su valor. Por ejemplo, a partir del arreglo [1, 3, 1, 7, 2, 7, 1, 7, 3] se quiere obtener [1, 1, 1, 7, 7, 7, 3, 3, 2]. Describa un algoritmo que realice el ordenamiento descrito, utilizando las estructuras de datos intermedias que considere necesarias. Calcule el orden de complejidad temporal del algoritmo propuesto. Ejercicio 8 Dado un arreglo de secuencias, se quiere ordenar a las mismas de acuerdo a su longitud, en forma creciente. De un algoritmo para hacerlo. Supongamos que, en caso de empate en longitud, se quiere desempatar utilizando un orden lexicogr aco (el mismo utilizado entre las pal abras en un ordenamiento alfab etico). Modique el algoritmo del item anterior para tal n. Identique el peor caso. Cu al es la complejidad? (Su respuesta debe depender de las longitudes de las secuencias) Ejercicio 9 Un arreglo se dice k -ordenado si, para cualquier elemento en el arreglo, su posici on en el arreglo completamente ordenado no diere en m as de k posiciones. Por ejemplo, si A es 3-ordenado y A[7] = 30, luego de ordenar A, 30 se encontrar a en alguna de las posiciones 4 a 10 de A. Cu al de los algoritmos vistos en la te orica utilizar a para ordenar un arreglo k-ordenado? Indique su complejidad (esta u ltima pregunta no es trivial, consulte si tiene dudas).

P agina 2 de 2

Вам также может понравиться