冒泡排序没有排序
Bubble sort didn't sort
我尝试做冒泡排序,但还是个初学者,我没有发现任何错误,但是当我尝试按字母顺序排序时,它没有对数组进行排序。
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++;
}
}
}
如何修复此代码以使用冒泡排序正确排序数组?
这段代码:
if (name[j].compareTo(name[j + 1]) < 0)
tempmemory = name[j];
name[j] = name[j + 1];
name[j + 1] = tempmemory;
显然是错误的。
提示:使用{
和}
修复它。
你的 if 条件应该包括这 3 个语句,现在它下面只有一个语句,即 tempmemory = name[j];。因此,如果它有多个语句,则使用 {} 括号作为 if 条件。所以这样写 if 语句:
if (name[j].compareTo(name[j + 1]) < 0) {
tempmemory = name[j];
name[j] = name[j + 1];
name[j + 1] = tempmemory;
}
我尝试做冒泡排序,但还是个初学者,我没有发现任何错误,但是当我尝试按字母顺序排序时,它没有对数组进行排序。
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++;
}
}
}
如何修复此代码以使用冒泡排序正确排序数组?
这段代码:
if (name[j].compareTo(name[j + 1]) < 0)
tempmemory = name[j];
name[j] = name[j + 1];
name[j + 1] = tempmemory;
显然是错误的。
提示:使用{
和}
修复它。
你的 if 条件应该包括这 3 个语句,现在它下面只有一个语句,即 tempmemory = name[j];。因此,如果它有多个语句,则使用 {} 括号作为 if 条件。所以这样写 if 语句:
if (name[j].compareTo(name[j + 1]) < 0) {
tempmemory = name[j];
name[j] = name[j + 1];
name[j + 1] = tempmemory;
}