今天我接受了一次面试,我们得到了一个编程问题,并被要求用c/c ++/Java解决它,我在java中解决了它,它的运行时间为3秒(测试更多是16000行,并且是随行人员我们说运行时间是合理的),另一个人用c解决了它,运行时间是0.25秒,所以我想知道,是12正常的因素?
编辑:正如我所说,我认为算法变化的空间不大,除非可能是一件小事,无论如何,我们必须实现这个协议:A(客户端)和B(服务器)根据一些协议p,在传递消息之前检查它们的有效性,协议由其状态和可以在特定状态下发送的文本消息定义,在所有状态中只有一个可以发送的有效消息除了在一个可以发送10条消息的状态外,还有5个状态,状态转换也由协议定义.所以我对可以发送10条不同消息的状态所做的就是将它们的字符串值存储在ArrayList容器中,然后当我需要检查相应状态下的消息有效性时我检查了是否为arrayList.contains(sentMessageStr); 我认为这个操作的复杂性是O(n)虽然我认为java有一些内置的优化操作,虽然现在我正在考虑它,也许我应该使用HashSet容器.我想c实现本来可以将这些预定义的合法字符串按字典顺序存储在数组中并实现二进制搜索功能.
谢谢
我猜想jvm很可能只花了3秒才加载.尝试连续5次在同一台机器上运行java版本.或者尝试在数据集上同时运行500倍.我怀疑你会发现Java版本存在显着的持续延迟,当运行时间进入分钟时这些延迟将变得无关紧要.
| 归档时间: |
|
| 查看次数: |
325 次 |
| 最近记录: |