gpt4 book ai didi

java - 比较 c 和 java 程序运行时

转载 作者:搜寻专家 更新时间:2023-11-01 01:19:33 24 4
gpt4 key购买 nike

我今天去面试,给了一道编程题,要求用c/c++/Java解决,我用java解决了,运行时间是3秒(测试多了16000行,还有陪我们的人说运行时间合理),另一个人用c解决了,运行时间是0.25秒,所以我想知道,12的因数正常吗?

编辑:正如我所说,我不认为算法变化的空间真的很大,除了一件小事,无论如何,我们必须实现这个协议(protocol):A(客户端)和 B(服务器)根据某种协议(protocol) p 进行通信,在传递消息之前检查其有效性,该协议(protocol)由其状态和处于特定状态时可以发送的文本消息定义,在所有状态都只能发送一个有效消息,除了在一个状态下可以发送大约 10 条消息,有 5 个状态,状态转换也由协议(protocol)定义。所以我对可以发送 10 条不同消息的状态所做的是将它们的字符串值存储在 ArrayList 容器中,然后当我需要检查相应状态下的消息有效性时,我检查了 arrayList.contains(sentMessageStr);我认为这个操作的复杂度是 O(n),尽管我认为 java 对此操作有一些内置的优化,虽然现在我正在考虑它,也许我应该使用 HashSet 容器。我想 c 实现本来可以将这些预定义的合法字符串按字典顺序存储在数组中并实现二分查找功能。

谢谢

最佳答案

我猜想 jvm 很可能只是为了加载就占用了这 3 秒的大部分时间。尝试在同一台机器上连续运行您的 Java 版本 5 次。或者尝试在 500 倍大的数据集上运行两者。我怀疑您会看到 Java 版本的显着持续延迟,当运行时间进入几分钟后,这种延迟将变得微不足道。

关于java - 比较 c 和 java 程序运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3347074/

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