MergeSort em Arquivo

Pessoal, estou tendo problemas em fazer um programa para a faculdade.
é o seguinte, tenho a classe ALUNO

[code]public class Aluno implements Serializable{

private int numMatricula;
private String nomeAluno;
private String cursoAluno;

}[/code]

ai tneho um Vector de alunos

private Vector aluno = new Vector();

Guardo este vetor num ARQUIVO

XMLEncoder alunos = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Alunos.xml")));

só que quando coloco ele, + o arquivo tem que estar ordenado em MergeSort, como ordeno um vector em Margesort?

Acho que isso vai te ajudar:

Tem um algoritmo feito em Java, basta adaptá-lo a sua necessidade.

Abraços.

Se não me engano o método sort() da classe Collections utiliza o MergeSort para fazer ordenação.
Vc pode dar uma olhada no fonte do mesmo para te auxiliar.

Aqui algo sobre Busca Binária:

http://www.unicamp.br/~hans/mc102/java/algoritmo/_buscaBinaria.html

Boa sorte.

Cara, q tipow, o problema nao é o merge e o busca binaria q tem pronto +, eu nao estou sabendo adaptar ao meu programa, como vou ordenar um vector q tem 100 alunos dentro, caso eu queira ordenar por Codigo de Matricula…
nao sei como aplicar marge e busca binaria neste caso. usando o vector com todos os alunos q tem q obter o codigo de matricula de cada 1!

Basta vc implementar a interface Comparable na sua classe Aluno.
Implementando o método int compareTo(Object o) que retorna um inteiro maior, menor ou igual a 0 dependendo do seu tratamento.
Assim, se vc fizer este tratamento pelo Código de Matrícula vc consegue saber qual é maior ou menor quando comparadas duas instâncias de Aluno.
Ai é só adaptar o algoritmo.

Lembrando que vc implementando Comparable na sua classe Aluno, quando vc utilizar o método sort() da classe Collections no seu Vector ele já fará o MergeSort pra vc atráves do compareTo que vc implementou.

[]'s