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++;
}
}
}
}
- Inicie sesión o regístrese para enviar comentarios
Metodos de Ordenamiento
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