【发布时间】:2010-09-30 15:38:28
【问题描述】:
我需要在我的代码中实现双向冒泡排序。
换句话说,in 将从左到右首先携带最大值。
但是当它到达out时,它应该反向并从右到左携带最小值。
建议我在当前索引之外实现另一个out 索引。
这是我目前所拥有的——只有 2 个循环。我猜我必须以某种方式将它们结合起来?
public void bubbleSort() {
int out, in; // nElems in my case is 4, because I have 4 elements in my array
for(out=nElems-1; out>1; out--) // outer loop backward
for(in=out; in>1; in--) // inner loop backward
if(a[in] < a[in-1])
swap(in, in-1);
for(out=0; out<nElems; out++) // outer loop forward
for(in=0; in<out; in++) // inner loop forward
if(a[in] > a[in+1])
swap(in, in+1);
【问题讨论】:
-
这是作业吗?只问,因为我在实践中很少发现冒泡排序
-
是的,它是 SB。冒泡排序很烂——真实的故事,但我必须完成这个项目。
-
如果是家庭作业,我猜我不会得到太多帮助?一点线索都没有?
-
你会得到一些帮助(尤其是线索),但是如果有些人觉得你在找人帮你做作业,他们就不想提供代码。如果是的话,有些人会反感你试图隐瞒这是家庭作业。
-
只是为了跟进 cHao 的评论,您可能应该使用
homework标签。
标签: java algorithm sorting bubble-sort