Traté de hacer una ordenación de burbujas y todavía era un principiante, no encontré ningún error, pero cuando traté de ordenarlo alfabéticamente, no clasifiqué la matriz.
public class Main { public static void bubblesort ( String [] name) { String tempmemory = " na"; for (int i = 0; i < name.length; i++) { for (int j = 0; j < (name.length - 1); j++) { if (name[j].compareTo(name[j + 1]) < 0) tempmemory = name[j]; name[j] = name[j + 1]; name[j + 1] = tempmemory; } } } public static void main ( String [] args) { String [] name = { "ciku", "eman","aina"} ; int i=0; System.out.println(" Before sort : "); while (i < name.length) { System.out.print ( name[i] + " "); i++; } bubblesort(name); i=0; System.out.println(" \n After sort : "); while (i < name.length) { System.out.print ( name[i] + " "); i++; } } }¿Cómo puedo arreglar este código para ordenar correctamente una matriz usando la ordenación de burbujas?
Su condición if debe incluir esas 3 declaraciones, en este momento solo tiene una declaración debajo, es decir, tempmemory = name[j];. Por lo tanto, use el corchete {} para la condición if si tiene varias declaraciones. Así que escribe una declaración if como esta:
if (name[j].compareTo(name[j + 1]) < 0) { tempmemory = name[j]; name[j] = name[j + 1]; name[j + 1] = tempmemory; }Este trozo de código:
if (name[j].compareTo(name[j + 1]) < 0) tempmemory = name[j]; name[j] = name[j + 1]; name[j + 1] = tempmemory;obviamente está mal.
Pista: usa { y } para solucionarlo.