我是Java的新手,所以我对"冒泡排序方法"有问题。 首先,到目前为止我的代码是:
import javax.swing.*;
public class arreglo_unidimensional_con_menu
{
public static void main(String args[])
{
int original[];
int n = 0, r = 0, aux = 0, num = 0, help = 0, indice = 0, posicion = 0, orden = 0;
String op;
boolean flag = false, band = false;
n = Integer.parseInt(JOptionPane.showInputDialog(null, "Introduzca el tamaño del Arreglo", "Inicialización", JOptionPane.QUESTION_MESSAGE));
original = new int[n];
do
{
op = (JOptionPane.showInputDialog(null, "Selecciona una opción: \n a) Insertar\n b) Mostrar\n c) Ordenar\n d) Buscar\n s) Salir", "Menú del Arreglo", JOptionPane.INFORMATION_MESSAGE).toUpperCase());
switch(op)
{
case "A":
if(indice < n)
{
original[indice]=Integer.parseInt(JOptionPane.showInputDialog(null, "Introduzca un número: ", "Entrada de Datos", JOptionPane.QUESTION_MESSAGE));
indice++;
}
else
{
JOptionPane.showMessageDialog(null, "El Arreglo ya NO tiene Espacio Disponible");
}
break;
case "B":
System.out.println("Arreglo: \n");
for(int ctrl = 0; ctrl < indice; ctrl++)
{
System.out.print(original[ctrl]+" ");
}
System.out.println("\n");
break;
case "C":
while(flag == false)
{
flag = true;
if(indice < n)
{
for(int ctrl = 0; ctrl < indice-1 && ctrl < n-1; ctrl++)
{
if(original[ctrl] > original[ctrl+1])
{
help = original[ctrl];
original[ctrl] = original[ctrl+1];
original[ctrl+1] = help;
flag = false;
}
}
break;
}
else if(indice == n)
{
for(int ctrl = 0; ctrl < n-1; ctrl++)
{
if(original[ctrl] > original[ctrl+1])
{
/*help = original[ctrl+1];
original[ctrl+1] = original[ctrl];
original[ctrl] = help;*/
help = original[ctrl];
original[ctrl] = original[ctrl+1];
original[ctrl+1] = help;
flag = false;
}
}
}
}
break;
case "D":
num = Integer.parseInt(JOptionPane.showInputDialog("Introduzca el número a buscar: "));
while(band == false)
{
for(int ctrl = 0; ctrl < n; ctrl++)
{
if(original[ctrl] == num)
{
band = true;
posicion = ctrl;
}
}
if(band == true)
{
JOptionPane.showMessageDialog(null, "Tú número "+num+" si está en el Arreglo y ocupa el índice: "+posicion);
band = false;
break;
}
else
{
JOptionPane.showMessageDialog(null, "Tú número "+num+" no está en el Arreglo");
break;
}
}
break;
case "S":
System.out.print("\n");
System.exit(0);
default:
JOptionPane.showMessageDialog(null, "Opción Incorrecta", "FATAL ERROR", JOptionPane.WARNING_MESSAGE);
}
}while(aux < n);
}
}
该程序的目的是为数组创建一个菜单,用于订购,搜索和显示。 但重要的是&#34;冒泡排序方法&#34;哪个选项C 对我来说效果不好,我需要添加&#34; N&#34; int值,但我不必填充整个数组,例如:
Array [value] = 5 然后用户逐个介绍数组的元素:
3 2 1 ...但阵列无法满员。
所以&#34;冒泡排序&#34;必须回报我:
1 2 3 ...所以当我引入一个新元素(如零)时,它可能会按顺序排列。
0 1 2 3
我做错了什么? 对不起我的英语,我不是来自美国,但我真的需要你的帮助。