JAVA BubbleSort运行时故障

JAVA BubbleSort运行时故障,java,runtime,bubble-sort,Java,Runtime,Bubble Sort,我编写了一个冒泡排序程序,可以将10000个唯一值按顺序排序 我已经运行了这个程序,它给了我一个输出,但是输出对我来说似乎不正确 代码如下: public class BubbleSort { public static void main(String[] args) { int BubArray[] = new int[]{#here are 10000 integers#}; System.out.println("Array Before Bubb

我编写了一个冒泡排序程序,可以将10000个唯一值按顺序排序

我已经运行了这个程序,它给了我一个输出,但是输出对我来说似乎不正确

代码如下:

public class BubbleSort {
    public static void main(String[] args) {
        int BubArray[] = new int[]{#here are 10000 integers#};
        System.out.println("Array Before Bubble Sort");
            for(int a = 0; a < BubArray.length; a++){
                 System.out.print(BubArray[a] + " ");
            }

            double timeTaken = bubbleSortTimeTaken(BubArray);
                 bubbleSort(BubArray);
            System.out.println("");               
            System.out.println("Array After Bubble Sort");
            for(int a = 0; a < BubArray.length; a++){
        System.out.println("    Time taken for Sort : " + timeTaken + " milliseconds.");
                System.out.print(BubArray[a] + " ");
            }
    }

private static void bubbleSort(int[] BubArray) {

            int z = BubArray.length;
            int temp = 0;

            for(int a = 0; a < z; a++){
                    for(int x=1; x < (z-a); x++){

                            if(BubArray[x-1] > BubArray[x]){

                                    temp = BubArray[x-1];
                                    BubArray[x-1] = BubArray[x];
                                    BubArray[x] = temp;

                            }      
                    }
            }
    }
public static double bubbleSortTimeTaken(int[] BubArray) {
    long startTime = System.nanoTime();
        bubbleSort(BubArray);
    long timeTaken = System.nanoTime() - startTime;
    return timeTaken;
    }
}
1.0114869E7毫秒在整个程序中运行,我不认为输出正是我想要做的,尽管它看起来像。我希望输出程序运行所花费的时间以及每次排序的时间

~z~我希望这是有道理的。
任何帮助都将不胜感激,谢谢。

我想您可能希望输出此信息。
sysout
应该在
for
循环之前

System.out.println(“排序所用的时间:“+timetaked+”毫秒”); 对于(int a=0;a 您已经对数组进行了排序,稍后将在for循环中显示它。您看到输出的时间是冒泡排序所花费的总时间(大约),该时间按以下方法计算

public static double bubbleSortTimeTaken(int[] BubArray) {
    long startTime = System.nanoTime();
    bubbleSort(BubArray);
    long timeTaken = System.nanoTime() - startTime;
    return timeTaken;
    }
}

所以,这就是总时间

只对数组排序一次,但输出的时间与数组中每个元素的时间相同。这就是你想做的吗?是的,没错。我希望对数组进行排序,并显示数组排序所花费的总时间(使用nanoTime函数)。嗯,很有趣。我现在有以下输出:气泡排序前的数组#随机10000个整数#。。。。冒泡排序后的数组。。。。排序所用时间:1.0404365E7毫秒#10000个整数排序#这是很低的时间,真的是正确的输出,对我来说似乎真的很快。可能就是这么快。试试100万吧。
public static double bubbleSortTimeTaken(int[] BubArray) {
    long startTime = System.nanoTime();
    bubbleSort(BubArray);
    long timeTaken = System.nanoTime() - startTime;
    return timeTaken;
    }
}