PDF de programación - Práctica 9. Algoritmos de Ordenación y Divide y Vencerás

Imágen de pdf Práctica 9. Algoritmos de Ordenación y Divide y Vencerás

Práctica 9. Algoritmos de Ordenación y Divide y Vencerásgráfica de visualizaciones

Publicado el 14 de Enero del 2017
1.676 visualizaciones desde el 14 de Enero del 2017
68,3 KB
2 paginas
Creado hace 12a (12/05/2011)
Práctica 9. Algoritmos de Ordenación y

Divide y Vencerás


Objetivos

- Practicar el diseño e implementación de algoritmos de ordenación.
- Realizar un estudio comparativo de algoritmos de ordenación.
- Practicar el diseño e implementación de algoritmos bajo el esquema de Divide y Vencerás.

Desarrollo

Se parte de una lista de identificadores de productos, los cuales vienen representados por
códigos numéricos positivos. Se pide:

1. Diseñar e Implementar un Algoritmo de Ordenación

Implementar un algoritmo de ordenación por base (radix sort) que ordene la lista de códigos de
producto. El número de dígitos que forman el código del producto debería ser un valor
parametrizable. Por ejemplo, estableciendo tres dígitos tendríamos códigos de 000 a 999, con
cuatro de 0000 a 9999, etc.

2. Realizar un Estudio Comparativo

Una vez implementado el algoritmo anterior, se pretende realizar un estudio comparativo de
nuestro radix sort respecto a la ordenación por quicksort proporcionada por java con el método
Arrays.Sort(int[] a).

Para ello habrá que ejecutar ambos algoritmos en distintas situaciones, variando dos parámetros:
el tamaño del array y el número de dígitos de los códigos de productos. Para facilitar este
proceso, se proporciona un pequeño fragmento de código con las instrucciones para medir
tiempos y una función que permite generar arrays aleatorios de códigos de productos, dado el
rango y tamaño del array.

3. Diseñar e Implementar un Algoritmo con el Esquema Divide y Vencerás

Partiendo del array de códigos de producto ya ordenado, se pretende implementar un algoritmo
que siga el esquema Divide y Vencerás y que encuentre la coincidencia índice-valor.

La coincidencia índice-valor es aquel elemento cuyo valor numérico es igual al índice que
ocupa dentro del array. Por ejemplo, en el siguiente caso la coincidencia índice-valor la
tendríamos en el elemento 5:


0

-10

1

-8

2

-3

3

-1

4

3

5

5

6

13

7

23

8

9

43

123


En caso de no encontrar la coincidencia índice-valor exacta, devolveremos el primer valor que
supere el valor del índice.



Sin embargo, en nuestros vectores de códigos de productos no tenemos valores negativos y en
caso de aplicar este algoritmo, la coincidencia índice-valor la tendríamos en el primer elemento.
Para solventar esto introduciremos un desplazamiento, que será introducido como parámetro y
se le sumará a los índices.

Por ejemplo, en el siguiente caso la coincidencia índice-valor sin considerar desplazamiento la
tendríamos en el elemento 0, que aunque no coincide su valor con el índice, sí que lo supera.


0

10

1

20

2

30

3

40

4

55

5

86

6

7

8

9

99

120

143

237


Los siguientes ejemplos consideran desplazamiento. Considerando un desplazamiento 20, la
coincidencia exacta no la tendríamos, pero el algoritmo devolvería el elemento 2, ya que su
valor (30) es superior al del índice más el desplazamiento (2+20). Con desplazamiento 60, el
algoritmo devolvería el elemento 5...
  • Links de descarga
http://lwp-l.com/pdf1011

Comentarios de: Práctica 9. Algoritmos de Ordenación y Divide y Vencerás (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad