我没有任何灵丹妙药类型的解决方案。我认为你将不得不Thread.sleep(...)
在不同的地方调用你的代码。
public class BubbleSort {
private long sleepBetweenIterationsMillis;
public BubbleSort(long sleepBetweenIterationsMillis) {
this.sleepBetweenIterationsMillis = sleepBetweenIterationsMillis;
}
...
// iterate through the list bringing the highest value to the top
// wait a certain number of millis
Thread.sleep(sleepBetweenIterationsMillis);
// loop
...
}
选择排序算法中的点来放置这些睡眠调用取决于您认为“迭代”是什么。除了注入睡眠值之外,您还可以调用某个睡眠管理器,该管理器可以动态更改睡眠值或根据用户输入进行更改。
public interface SleepManager {
public void sleep();
}
public class BubbleSort {
private SleepManager sleepManager;
public BubbleSort(SleepManager sleepManager) {
this.sleepManager = sleepManager;
}
...
// iterate through the list bringing the highest value to the top
// call the manager which can dynamically slow or speed up the iterations
sleepManager.sleep();
// loop
...
}
我无法评论 MVC 问题。您将不得不围绕您尝试过的内容和想要完成的内容写另一个更具体的问题。