我从一个RPC服务接收到一个通用的object
类型实例,我要将该实例转换为MyClass
类型实例,此操作的时间复杂度是多少?性能对我的应用程序至关重要。(对于像Java和C#这样的语言)
示例:employee employee=(employee)Person;
或purchaseData purchaseData=(purchaseData)GenericData;
铸造首先是一个编译时的activity。
在运行时,如果有,则假设O(1)。您看到,所有这些信息(如类结构)在执行代码时都是固定的。
给定注释:假设您的对象被反序列化为类X的实例,那么JVM已经知道所述对象实际上是类X的。该对象存在于内存中,而它的确切类只需要一个查找就可以了!
除此之外:假设您的对象通过某种RPC调用进入,并且它们从某种传输表示反序列化为JVM对象...您真的认为转换的时间很重要吗?调用远程服务可能需要毫秒,甚至几秒。你担心以后施放这样的物体会花费5纳秒或15或25秒吗?
唯一可能导致显著性能的情况是:当转换出错时,您遇到了ClassCastException。
问题内容: 我当时在看这个pycon演讲,时间是34:30,发言人说,可以在中完成获取元素列表中最大的元素的操作。 那怎么可能?我的理解是,创建堆将是,但是其本身的复杂性是还是(以及(实际的算法是什么))? 问题答案: 扬声器在这种情况下是错误的。实际费用为。仅在可迭代的第一个元素上调用堆化。就是那个,但如果小于,则微不足道。然后,将所有剩余的元素一次通过添加到此“小堆”中。每次调用需要花费时间。
问题内容: 我已经看到了此页面 https://wiki.python.org/moin/TimeComplexity, 但是我没有看到列表中的函数。什么是时间的时间复杂度的? 我对时间的实验表明,它适用于较大的尺寸。有人可以确认吗? timeit反转大小列表的时间 问题答案: 是的,您是对的,它是O(n),其中n- 列表长度。在此处查找更多信息:https : //www.ics.uci.edu
问题陈述:给定一个非空字符串s和一个包含非空单词列表的字典字词,在s中添加空格来构造一个句子,其中每个单词都是有效的字典单词。返回所有这些可能的句子。 我的解决方案: 我不确定时间和空间的复杂性。我认为它应该是2^n,其中n是给定字符串s的长度。谁能帮我证明时间和空间的复杂性? 我还有以下几个问题: 如果我不在GetAllSences函数中使用memo,那么在本例中时间复杂度是多少? 还有比这更好
问题内容: 我在Java类中有一个私有的LinkedList,并且经常需要检索列表中的最后一个元素。列表需要缩放,所以我试图确定在进行更改时是否需要保留对最后一个元素的引用(以实现O(1)),或者LinkedList类是否已经通过getLast()调用完成了此操作。 LinkedList.getLast()的big-O成本 是多少 , 有记载吗? (即,我是否可以依靠此答案,或者即使它是O(1),
问题内容: 我写了以下课程: 然后,在我的方法中,我创建了一个,向其中添加了一些具有“ X”和“ angle”字段的对象。 然后,我使用: 这种排序方法的复杂性是什么? 问题答案: 您可能已经阅读了有关Collections排序的文档,但是这里适合您: 排序算法是一种修改的mergesort(如果低子列表中的最高元素小于高子列表中的最低元素,则忽略合并)。该算法提供了有保证的n log(n)性能。