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

 

que tal disculpen me podrian

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