我正在编写一个应用程序,它使用 Dijkstra 算法来查找图中的最小路径。图中节点和边的权重为float
数字,因此该算法对浮点数进行许多算术运算。如果我将所有重量转换为int
是? Java中int算术运算比float算术运算更快吗?
我尝试编写一个简单的基准来检查这一点,但我对得到的结果并不满意。编译器可能优化了程序的某些部分,因此结果对我来说看起来不太好。
EDIT:
我试图解决的问题属于信息检索领域。应用程序应显示作为一组关键字的查询的答案。
我的数据结构是加权有向图。给定一组叶节点,我必须找到连接这些节点的最小树并向用户显示答案。权重由部分基于 tf/idf 技术的加权函数分配。用户不知道我分配给节点和边的权重是什么,他只是想查看与他提出的查询相关的答案。因此不需要精确的结果,只需根据权重枚举答案即可。只是加权函数的本机使用(正如我提到的,它基于 tf/idf)给出了浮点权重,因此到目前为止我使用浮点。
我希望这能为这个问题增加一些背景知识。
对于简单的操作 int 更快,但是使用 int 你可能需要做更多的工作才能得到相同的结果。例如
as float
float f = 15 * 0.987;
as int
int i = 15 * 987 / 1000;
额外的除法意味着 int 运算可能需要更长的时间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)