gpt4 book ai didi

java - 从 J 单元的功能时序中删除设置时间

转载 作者:行者123 更新时间:2023-11-30 09:45:52 25 4
gpt4 key购买 nike

因此我需要测试从不同顺序的已排序数组中获取第 k 个元素需要多长时间。我希望运行时间为 O(N),但它似乎越来越像 O(2^N)。这向我表明 J-Unit 正在为我的 setup() 函数计时,即使它是用 @Before 注释的。我做错了什么?

import org.junit.Before;
import org.junit.Test;

public class GetKthTest {
int[] sorted1;
BubbleSort sort = new BubbleSort();
private int k = 50;

@Before
public void setUp() {
RandomListGen gen1 = new RandomListGen(80000);
sorted1 = sort.sort(gen1.getArray());

}

@Test
public void hundredThous() {
System.out.println(sorted1[k]);

}
}

最佳答案

实际上我不认为你做错了什么我认为 JUnit 中有一个错误。

作为引用,我在 @AfterClass JUnit @AfterClass run time is added to a poor testcase :( 中遇到了几乎完全相同的问题.

我已经在 Eclipse 中使用通用代码/JUnit4 复制了您的问题。

public class GetKthTest {
int[] sorted1;
int nbr = 8000000;
private int k = 50;

@Before
public void setUp() {
sorted1 = new int[nbr];
Random rand = new Random();
for (int i = 0; i < nbr; i++) {
sorted1[i] = rand.nextInt();
}
Arrays.sort(sorted1);

}

@Test
public void hundredThous() {
long start = System.currentTimeMillis();
System.out.println(sorted1[k]);
System.out.println("Time in ms: " + (System.currentTimeMillis() - start));
}

}

打印

-2147455505
Time in ms: 0

,

JUnit report 1,399s

关于java - 从 J 单元的功能时序中删除设置时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7412068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com