Universidad de Costa Rica
Recinto de Golfito
Informática Empresarial
Profesores Di Mare y Noguera
IF-3001
I Semestre 2013
[<=] [home] [<>] [\/] [=>]
IF-3001 Algoritmos y Estructuras de Datos

Tarea #3 [solución]

Método de ordenamiento List.bubbleSort()

.../pub/Pg1-T9

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:

  1. List.java
  2. Permutacion.java
  3. TestList.java
  4. CARNET.docx
  5. CARNET.html
  6. 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

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2013
Derechos de autor reservados © 2013
[home] <> [/\]