我正在编写一个应用程序,使用Dijkstra算法在图中查找最小路径。图中节点和边的权重是float
类型的数字,因此算法对浮点数进行了大量的运算。如果将所有权重转换为int
类型,能否提高运行时间?在Java中,整数算术运算比浮点数运算更快吗?
我试图编写一个简单的基准测试来验证这一点,但结果并不令我满意。可能编译器已经优化了程序的某些部分,因此结果对我来说并不好。
编辑:
我要解决的问题是信息检索领域的问题。该应用程序应显示作为关键字集合提出的查询的答案。
我的数据结构是加权有向图。给定一组叶子节点,我必须找到连接这些节点的最小树,并向用户显示答案。权重由基于tf/idf技术的加权函数分配。用户不知道我为节点和边分配了哪些权重,他只想看到与他提出的查询相关的答案。因此,不需要精确的结果,只需要根据它们的权重枚举答案的可能性。正如我之前提到的,使用加权函数的原生方法(它基于tf/idf)会得到浮点权重,因此我目前使用了浮点数。
希望这些补充能为问题提供一些背景信息。