Ordenação mergeSort em java

0 respostas
java
Hugohenri

Pessoal o problema é o seguinte, eu tenho que usar a ordenação merge sort para ordenar um vetor, estou fazendo isso recursivamente. é uma atividade da faculdade, só que na hora de ordenar ele nao está ordenando corretamente e eu ja refiz o codigo do zero e sempre acontece a mesma coisa…
Alguém poderia me ajudar ?

package mergesort;

public class MergeSort {

public static void main(String[] args) {
    int vet[] = {5, 9, 8, 3, 4, 6, 2, 7};
    int i = 0;
    int f = vet.length;
mergeSort(vet, i, f);
for (int j = 0; j < vet.length; j++) {
        System.out.println(vet[j]);
    }
}
public static void mergeSort(int[] vet, int i, int f) {
if (i < f) {
        int m = (i + f) / 2;
mergeSort(vet, i, m);
        mergeSort(vet, m + 1, f);
        intercala(vet, i, m, f);
    }
}
public static void intercala(int[] vet, int i, int m, int f) {
    int vet2[] = new int[vet.length];
for (int j = i; j <= m; j++) {
        vet2[j] = vet[j];
    }
    for (int g = m + 1; g < f; g++) {
        vet2[f + m - g] = vet[g];
    }
    int x = i;
    int z = f - 1;
for (int k = i; k < f; k++) {
if (vet2[x] <= vet2[z]) {
vet[k] = vet2[x];
            x = x + 1;
        } else {
            vet[k] = vet2[z];
            z = z - 1;
        }
    }
}

}

Criado 9 de abril de 2016
Respostas 0
Participantes 1