【发布时间】:2019-07-24 00:14:59
【问题描述】:
我正在尝试以视觉方式为该方法设置动画,并且我想使用计时器来控制插入排序,方法是让它检查一个索引或每隔一段时间(100 毫秒)交换一组索引。这样我可以看到它一步一步地发挥出来。
方法如下:
public static void sort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int j = i;
while(j > 0 && arr[j] < arr[j-1]){
ArrayUtility.swap(j,j-1, arr);
j--;
}
}
}
这样做的目的是,如果一对索引相互检查,该方法不会继续循环,它检查索引然后停止,直到方法的下一部分允许运行 100 毫秒之后。
【问题讨论】:
-
要么记住你所在的步骤(索引
i和j),然后你可以暂停和继续。或者直接睡在你想要的位置,Thread.sleep(100)。 -
对于前者,您可以创建一个类
Sorter,其中包含int i和int j字段和数组。然后这个类提供了一个sortStep()方法,它只排序一个步骤。因此,它将简单地使用i和j字段并执行下一步,然后推进i和j。
标签: java sorting insertion-sort