Java - Burbuja

 
Vista:
Imágen de perfil de Nicolas

Burbuja

Publicado por Nicolas (3 intervenciones) el 07/11/2014 03:27:25
Hola, Buenas noches tengo este problema de progra alguien me podría echar una mano con el código. Tengo mi método de la burbuja que ordena un archivo llamado Contactos. Pero ahora me piden que lo modifique de tal manera que no lea el registro "siguiente" dos veces. Alguien podria ayudarme? :) Muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.*;
public class ejercicioburbuja {
 
    private static RandomAccessFile raf = null;
    public static void main(String[] args) throws Exception {
        byte [] regAnt= new byte [Constantes.LEN_RECORD];
        byte [] regSig= new byte [Constantes.LEN_RECORD];
        String nombreAnt,nombreSig;
        raf = new RandomAccessFile(Constantes.CONTACTOS,"rw");
        int numRegs = (int) raf.length() / Constantes.LEN_RECORD;
        for (int i = numRegs; i > 1; i--)
        {
            for (int j = 1; j < i; j++)
            {
                raf.seek((j - 1) * Constantes.LEN_RECORD);
                raf.read(regAnt);
                nombreAnt = Funciones.arrByte2String(regAnt,Constantes.LEN_NOMBRE);
                raf.seek((j+1 - 1) * Constantes.LEN_RECORD);
                raf.read(regSig);
                nombreSig = Funciones.arrByte2String(regSig,Constantes.LEN_NOMBRE);
                 if (nombreSig.compareTo(nombreAnt) < 0)
                {
                    raf.seek((j - 1) * Constantes.LEN_RECORD);
                    raf.write(regSig);
                    raf.seek((j+1 - 1) * Constantes.LEN_RECORD);
                    raf.write(regAnt);
                }
            }
        }
        raf.close();
                                                             }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder