Ordenar um vetor usando merge sort. URGENTE

0 respostas
java
Fabricia_Santos2344

Como faço pra chamar o metodo merge sort no main para ordenar o vetor

public class Prova2 {

    public static void mergeSort(int[] x, int[] xTemp, int esq, int dir) {
        if (esq < dir) {
            int medio = (esq + dir) / 2;
            mergeSort(x, xTemp, esq, medio);
            mergeSort(x, xTemp, medio + 1, dir);
            mesclar(x, xTemp, esq, medio + 1, dir);
        }
    }

    public static void mesclar(int[] x, int[] xAux, int posEsq, int posDir, int posFim) {
        int finEsq = posDir - 1;
        int posAux = posEsq;
        int numElementos = posFim - posEsq + 1;
        while (posEsq <= finEsq && posDir <= posFim) {
            if (x[posEsq] < x[posDir]) {
                xAux[posAux++] = x[posEsq++];
            } else {
                xAux[posAux++] = x[posDir++];
            }
            while (posEsq <= finEsq) {
                xAux[posAux++] = x[posEsq++];
            }
            while (posDir <= posFim) {
                xAux[posAux++] = x[posDir++];
            }
            for (int i = 0; i < numElementos; i++, posFim--) {
                x[posFim] = xAux[posFim];
            }
        }
    }

    public static void gerar() {
        int[] vetor = new int[100];
        Random gerador = new Random();

        for (int i = 0; i < 100; i++) {
            vetor[i] = gerador.nextInt(90);
            if (vetor[i] == vetor[i+1]) {
                vetor[i] = gerador.nextInt(90);
            }
        }
    }

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        System.out.println("__________MENU_________");
        System.out.println("---1-Ordem Crescente---");
        System.out.println("--2-Ordem Descrecente--");
        int op = scan.nextInt();

    }
}
Criado 3 de novembro de 2016
Respostas 0
Participantes 1