style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

ordenamiento por mezcla

hola saben me ayudaron muxo sus sugerencias pero todamia me falta algo tengo echo el menu pero me tira un error y los otros case no entiendo como hacerlos si me pueden ayudar por favor tengo k mostrar los elementos de menor a mayor y viceversa. y la opcion para los ordene como la tengo k ejecutar por favorr ayuda..
si pueden decirme k errores tengo y ayudare a corregirlos aci les dejo el codigoo

import javax.swing.*;
public class mergearray
{
public static void main(String[] args)
{

String ops="",datos="";
int op=0,dat=0;

do{
ops=JOptionPane.showInputDialog("Menú Aplicación \n1. Ingresar datos\n2. Ordenar datos \n3. mostrar de menor a mayor \n4. mostrar de mayor a menor\n5. Salir\n\nopcion ");
op=Integer.parseInt(ops);
switch (op){
case 1: String xs="";
int x;
datos=JOptionPane.showInputDialog("ingrese cnatidad de elementos a ordenar");
dat=Integer.parseInt(datos);
for (int dat=0;dat<=datos;dat++)
{
xs=JOptionPane.showInputDialog("ingrese numero");
x=Integer.parseInt(xs);
}
mergearray.mergeSort1();
break;
case 2:
break;
case 3:
break;
case 4:

break;

}
}while (op!=5);
}

public static void mergeSort1(int array[],int lo, int n)
{
int low = lo;
int high = n;
if (low >= high) {
return;
}

int middle = (low + high) / 2;
mergeSort1(array, low, middle);
mergeSort1(array, middle + 1, high);
int end_low = middle;
int start_high = middle + 1;
while ((lo <= end_low) && (start_high <= high))
{
if (array[low] < array[start_high])
{
low++;
}

else
{
int Temp = array[start_high];
for (int k = start_high- 1; k >= low; k--)
{
array[k+1] = array[k];
}
array[low] = Temp;
low++;
end_low++;
start_high++;
}
}
}
}

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de JaimeItlzc

Metodos de Ordenamiento

 public void mergesort(){
    int n = numAleat;
    int[] aux = new int[n];
    int i, j, k, l1, l2, u1, u2, size = 1;

    while (size < n) {
      l1 = 0;
      k = 0;
      while ( (l1 + size) < n) {
        l2 = l1 + size;
        u1 = l2 - 1;
        u2 = (l2 + size - 1 < n) ? l2 + size - 1 : n - 1;
        for (i = l1, j = l2; (i <= u1) && (j <= u2); k++)
          if (x7[i] <= x7[j])
            aux[k] = x7[i++];
          else
            aux[k] = x7[j++];
        for (; i <= u1; k++)
          aux[k] = x7[i++];
        for (; j <= u2; k++)
          aux[k] = x7[j++];
        l1 = u2 + 1;
      } //while
      for (i = l1; k < n; i++)
        aux[k++] = x7[i];
      for (i = 0; i < n; i++)
        x7[i] = aux[i];
        pausa(); //************************
      size = size * 2;
    } //while
  }

que tal disculpen me podrian

que tal disculpen me podrian decir por que no funciona el codigo

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">