我将此递归 BubbleSort 算法添加到我在 lwjgl 上运行的游戏中。我正在尝试通过浮点数对“云”对象的 ArrayList 进行排序,该浮点数是该云的速度。
出于某种原因,有时我在自己调用该方法的那一行会得到一个“java.lang.StackOverflowError”。
这是代码:
public void sort() {
for (int i = 0; i < clouds.size() - 1; i++) {
Cloud cl1 = clouds.get(i);
Cloud cl2 = clouds.get(i + 1);
if (cl1.getSpeed() < cl2.getSpeed()) {
continue;
}
clouds.set(i, cl2);
clouds.set(i+1, cl1);
this.sort();
}
}
这是我得到的错误:
Sat May 04 20:28:45 CEST 2013 ERROR:null
java.lang.StackOverflowError
at backgrounds.Clouds.sort(Clouds.java:224)
[...] // The line above is repeated for some hundred times.