我需要在我的代码中实现双向气泡排序。双向泡沫排序在Java?
换句话说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);
双向冒泡排序是本次作业?只问,因为我很少在练习中发现泡泡排序 – 2010-09-30 15:52:19
是的,它是SB。泡沫排序糟透了 - 真实的故事,但我必须完成这个项目。 – 2010-09-30 16:02:48
我猜我不会得到太多的帮助,如果这是一项家庭作业?甚至没有线索? – 2010-09-30 16:07:14