【发布时间】:2014-02-12 16:17:15
【问题描述】:
我的老师告诉我这是冒泡排序的唯一代码:
int a[] = {2, 3, 7, 9, 8, 1, 4, 5, 10, 6};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + "\t");
}
但我用不同的外循环运行程序:
int b[] = {2, 3, 7, 9, 8, 1, 4, 5, 10, 6};
for (int i = 0; i < b.length - 1; i++) {
for (int j = 0; j < b.length - i - 1; j++) {
if (b[j] > b[j + 1]) {
int t = b[j];
b[j] = b[j + 1];
b[j + 1] = t;
}
}
}
for (int i = 0; i < b.length; i++) {
System.out.print(b[i] + "\t");
}
输出是:
第一种情况:
1 2 3 4 5 6 7 8 9 10
第二种情况:
1 2 3 4 5 6 7 8 9 10
所以现在我被告知我的代码是错误的,即使我的输出是正确的。
请告诉我我完全错了吗??
【问题讨论】:
-
看起来您几乎将冒泡排序“改进”为cocktail sort。
-
我很确定这些年来我至少看到了两种不同的冒泡排序实现,因此声称这是“唯一”的说法有点可疑......事实上,任何声称一段特定的代码是“唯一的”任何东西都应该侧着看......
-
请考虑访问 Academics.se 和programmers.se
标签: java bubble-sort