我不能做这个Heapsort动画

时间:2016-03-20 13:02:05

标签: java data-structures heapsort

我仍然把头发拉到今天,因为我无法想到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(" | ");
}

1 个答案:

答案 0 :(得分:0)

提示:每次交换后,打印出部分排序数组的所有元素。这应该会给你一个“廉价而愉快”的动画。