java - 测试自定义数据结构的大复杂性

标签 java junit time-complexity

作为一项作业,我实现了一个自定义数据结构和一些测试用例,以确保它正常工作。 该问题实际上并不需要代码本身,但您可以假设它是某种 SortedList。 我的问题是我还被要求测试大 O 复杂性,例如确保 put() 是 o(n) 等。

我很难理解如何编写这样的测试。

我想到的一种方法是使用一个简单的计数器来计算 put() 方法内的迭代次数,然后检查它是否等于列表的大小,但这需要我更改以下代码列表本身来计算确切的数字,我更愿意在类之外以正确的方式进行计算,只保存它的一个实例。

有人有什么想法吗?我非常感谢您的帮助!

最佳答案

通过单元测试,您可以测试类的接口(interface),但迭代次数不是此处接口(interface)的一部分。您可以使用计时器来检查不同大小的运行时行为。如果是 O(n),时间和 n 之间应该存在线性依赖关系。

关于java - 测试自定义数据结构的大复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35819913/

相关文章:

java - 我如何找出方法所在的库?

Java Webservice 在 Apache Tomcat 上命中代理而不是目标

java - 使用 DataSource 接口(interface)连接 Oracle 数据库的程序

java - 为 Future 回调编写 junit 测试用例

junit - 如何让 JUnit 让我在一个测试用例中设置变量,并在其他测试用例中访问它们(如果它们位于同一类中)

Python大整数性能

algorithm - 以下嵌套循环的时间复杂度是多少?

c++ - 如何在 C++ 中快速计算 vector 的归一化 l1 和 l2 范数?

java - 如何通过 Hibernate 在 mysql 中获取枚举类型的所有可能值

java - 在数组列表的条目中搜索一段文本的最简单方法?