我必须解决以下问题。所以最初我有一个冒泡排序,现在我修改它使其成为双向的。以下是我的解决方案。
public void bubbleSort() {
int temp;
int out;
int outNew = 0;
int in;
for (out = nElems - 1; out > outNew; out--) {
for (in = 0; in < out; in++) {
if (a[in] > a[in + 1]) {
temp = a[in + 1];
a[in + 1] = a[in];
a[in] = temp;
}
}
for (int j = in - 1; j > outNew; j--) {
if (a[j] < a[j - 1]) {
temp = a[j];
a[j] = a[j - 1];
a[j - 1] = temp;
}
}
outNew++;
}
}
当我打电话给我的冒泡排序来排序我创建的数组中的一些随机数似乎排序的很好。我的问题是所有的开发人员,无论我的解决方案是否满足上面提到的问题,以及我可以做些什么不同的事情来使此解决方案更有效(如果可能)。我很抱歉,如果这是一个小问题,我通常在这里寻找暗示和建议,而不是代码,因为它可以帮助我学得更好。我很感谢所有的答案,并欢迎任何建议。
哦,我明白你的意思是关于我的内循环,所以如果我设置我的= outNew,这将照顾低效率的权利?外环有什么问题? – user1010101
@ user2733436:对不起,我的错,我认为这是'out> 0' – fabian
对不起,当我第一次发布它,但这是一个错误,我ralized所以我编辑它并修复它。我猜你在编辑它之前可能看到了我的代码:)。 – user1010101