我仍然把头发拉到今天,因为我无法想到java中这种排序算法的动画,每当我尝试这样做时,我仍然会在角落里哭泣。这是我的代码,请你帮我做一些动画吗?
public static final int max = 11;
public static void main(String[] args) {
int[] toSortArray = new int[max];
toSortArray[0] = 0;
for (int i = 1; i < max; i++) {
toSortArray[i] = (int) (Math.random() * 100);
toSortArray[0]++;
int index = i;
while (toSortArray[index / 2] < toSortArray[index] && (index / 2) != 0) {
int temp = toSortArray[index / 2];
toSortArray[index / 2] = toSortArray[index];
toSortArray[index] = temp;
index = index / 2;
}
}
System.out.println("The array to be sorted is:");
for (int i = 0; i < max; i++) {
System.out.print(" | " + toSortArray[i]);
}
System.out.println(" | ");
while (toSortArray[0] > 0) {
int temp = toSortArray[1];
toSortArray[1] = toSortArray[toSortArray[0]];
toSortArray[toSortArray[0]] = temp;
for (int i = 1; i < toSortArray[0]; i++) {
int index = i;
while (toSortArray[index / 2] < toSortArray[index] && (index / 2) != 0) {
int temp1 = toSortArray[index / 2];
toSortArray[index / 2] = toSortArray[index];
toSortArray[index] = temp1;
index = index / 2;
}
}
toSortArray[0]--;
}
System.out.println("The sorted array is: ");
for (int i = 0; i < max; i++) {
System.out.print(" | " + toSortArray[i]);
}
System.out.println(" | ");
}
答案 0 :(得分:0)
提示:每次交换后,打印出部分排序数组的所有元素。这应该会给你一个“廉价而愉快”的动画。