Universidad de Costa Rica
Recinto de Golfito
Informática Empresarial
|
|
IF-3001 Algoritmos y Estructuras de Datos
public static void bubbleSort( int VEC[] ) {
int i,j;
for ( i=VEC.length; i>0; --i ) {
for ( j=1; j<i; ++j ) {
if ( VEC[j]<VEC[j-1] ) ) {
intercambie( VEC, j,j-1 );
}
}
}
}
|
Verifique que esta
implementación Java del
método de ordenamiento por burbuja funciona correctamente y,
en caso contrario, corríjala. Luego utilice la
lista doblemente enlazada vista en
clase para incluirle su método bubbleSort()
que
implementa este ordenamiento. Para verificar que su
implementación funciona correctamente, utilice las rutinas de
permutaciones que desarrolló en una
tarea previa para constatar que su
método funciona con todas las permutaciones de números
consecutives en el rango [0..10]
.
Para esta tarea programada ustedes debe entregar, por lo menos, estos archivos:
-
List.java
-
Permutacion.java
-
TestList.java
-
CARNET.docx
-
CARNET.html
-
CARNET.url
- Consulta:
-
Profe: ¿Puedo usar mi propia lista? O si no, ¿puedo usar la
lista que está en
HerenciaOrdenada.java
?
- Respuesta:
-
No. Usá la otra, la
lista doblemente enlazada
que vimos en clase.
La de
HerenciaOrdenada.java
es demasiado simple.
- Entregue su tarea por correo electrónico.
- Modalidad: En parejas
- Consulta:
-
Profe: ¿Puedo usar el método
get()
de la lista??
- Respuesta:
-
La respuesta corta es no. Es posible agregarle un método a la lista
para que funcione como si fuera un vector, como efectivamente ocurre con el
método
get(i)
de la interfaz List<E>
:
- http://google.com/search?as_qdr=all&num=100&as_q=java+list+get
.
→ Sin embargo, el método get()
tiene un costo O(n), y
no es una forma eficiencia de accesar la lista. Sin embargo, el uso
get()
tiene un problema significativo en el contexto de esta
tarea programada, pues es un subterfugio que permite evitar lidiar con la
lista (get()
sirve para no manipularle los campos de enlace de la
lista). Cualquier estudiante que solo conozca cómo acceder los valores
almacenados en una lista únicamente mediante el método
get()
, en realidad no conoce cómo usar estructuras
enlazadas, lo que representa una carencia cognoscitiva significativa.
→ Es necesario que manipulen los enlaces de la lista.
- Entregue su tarea por correo electrónico.
- Modalidad: En parejas
Soluciones
Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2013
Derechos de autor reservados © 2013