Java 中 int 与 float 算术效率

2024-02-16

我正在编写一个应用程序,它使用 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(使用前将#替换为@)

Java 中 int 与 float 算术效率 的相关文章

随机推荐

  • 根据文件的扩展名将文件移动到适当的位置

    我有一个清理脚本 可以根据文件的扩展名将文件移动到适当的预设位置 例如 扩展名为 xls 的文件将被移动到 XLS 文件夹 sql 会被移动到 SQL 文件夹 依此类推 这是我的脚本 dirtyfolder server c Documen
  • 使用 lxml.etree 移动整个元素

    在 lxml 中 给定一个元素 是否可以将整个元素移动到 xml 文档中的其他位置 而不必读取它的所有子元素并重新创建它 我最好的例子就是改变父母 我翻阅了一些文档 但运气不佳 提前致谢 append insert和其他操作默认执行此操作
  • 在 UIPasteBoard 中复制 NSAttributedString

    如何在粘贴板中复制 NSAttributedString 允许用户粘贴或以编程方式粘贴 使用 void paste id sender 来自 UIResponderStandardEditActions 协议 I tried UIPaste
  • 段落“

    ”填充未应用

    以下三段代码的行为完全相同 p A paragraph of text here p p A paragraph of text here p p style padding 0 15 0 15 A paragraph of text he
  • MeteorJS模板不显示数据,不出现

    我最初以为我的集合没有接收数据 但事实证明我只是在查询中出现了拼写错误 但我的数据仍然没有出现在屏幕上 HTML 模板非常基本 如下所示
  • 新 Rails 3 项目中未定义的方法 `use_transactional_fixtures='

    当我尝试使用 MongoDB 和 Mongoid 在 Rails3 项目中运行测试时遇到错误 undefined method use transactional fixtures for ActiveSupport TestCase Cl
  • 创建实现特定接口的 ATL COM 对象

    我需要实现一个简单的 ATL COM 对象 该对象实现一个特定的接口 我已为其提供了 tlb 文件和 idl 文件 该接口非常简单 仅包含一个方法 我过去创建过许多 ATL 对象 但从未创建过必须实现特定接口的对象 我需要什么才能实现这一目
  • 跟踪App Store下载源

    有没有办法追踪App Store的下载源 例如 如果我在应用程序的 Facebook 页面上发布链接 我可以知道有多少人通过该链接下载了我的应用程序吗 感谢您的回答 是的 您可以使用 Apple App Analytics 的活动链接来跟踪
  • 如何将 UILongPressGestureRecognizer 添加到 UITextField?

    我正在尝试添加UILongPressGestureRecognizer到页面上的 UITextField 之一 但长按 UiTextField 时不会调用选择器方法 我将它添加到 UItextField 但当我长按 TextField 但在
  • 如何在多个游戏对象上统一使用相同的脚本?

    我有一个脚本CoinFill这会形成一个径向进度条 当 FillAmount 1 时 我想将该特定图像重置为零 我希望能够将其用于多个GameObjects 问题是当第一次FillAmount 1 速度较快的便士 可以点击镍币 可能是50
  • std::atomic 的正确用法

    这是使用 std atomic 的正确方法吗 我有一个Logger在命名空间级别声明称为LOGGER class Logger public Logger Logger bool Init std wstring logFileLocati
  • Chrome 开发者工具:I CSS 覆盖未使用的字节

    我正在尝试从网页中删除未使用的 CSS 在 Chrome 开发者工具中 gt 单击垂直三个点 gt 更多工具 gt 覆盖范围 单击任意 CSS 我们看到一份报告 其中红色表示未使用的 CSS 绿色表示已使用的 CSS 有没有一种方法可以根据
  • 向 UIAppFonts 添加多种字体会相互覆盖

    我正在尝试通过以下方式向 iPhone 应用程序添加一些自定义字体UIAppFonts in Info plist 我可以通过代码访问这两个字体名称 即MyFont Bold and MyFont Medium 我的问题是最后一个字体UIA
  • 如何验证nestjs中的查询参数

    哟 我有 Nestjs 的商店应用程序 我需要验证 mongo id 这是通过查询传递的 问题是我也传递和搜索查询 我编写了验证所有值的管道 并排除了此搜索查询 Injectable export class ValidationObjec
  • Ada 通用平均函数

    我有一个函数可以对记录数组中的某个数值进行平均 该值可以是自然类型增量 也可以是枚举类型增量 我让它正确地总结了这些值 但我的问题是 如何将数组的长度转换为通用类型 以便它可以除以整数和增量类型数字 在记录数组上使用 长度 属性 这样做的优
  • Android 上的 Google 地图无法加载

    我的应用程序中有一个可用的 Google 地图 但我必须开始使用另一台计算机 所以我用 Android Studio 等在这台新电脑上下载了我的源代码 现在 我无法再让 Android 地图显示了 我在 Google Console 中从我
  • Hibernate 从多个表中计数

    我想编写一个 HQL 查询 从不同列的 4 个表中返回特定计数 我有4张桌子 Tab1 Tab2 Tab3 and Tab4 我想得到这样的东西 Tab1 Tab2 Tab3 Tab4 1 13 7 0 所有记录在Tab 有自己的id an
  • 如何在用 C 编写的类似 FORTH 的语言解释器中实现 LOOP

    我正在用 C 编写一种简单的基于堆栈的语言 并且想知道应该如何实现某种类型的循环结构和 或前瞻符号 由于此页面的代码有点长 超过 200 行 所以我将其放入GitHub 存储库 https github com tekknolagi Sta
  • 如何在 C# 中混合两个视频流?

    过去 我使用 Managed Direct X 和 DirectShow Net 将视频播放到简单网格上的纹理 然后 我使用相同的技术将多个视频源组合成单个纹理 并使用通过纹理公开的各种功能将这些流混合在一起 这是 2 年前的一个非常有趣的
  • Java 中 int 与 float 算术效率

    我正在编写一个应用程序 它使用 Dijkstra 算法来查找图中的最小路径 图中节点和边的权重为float数字 因此该算法对浮点数进行许多算术运算 如果我将所有重量转换为int是 Java中int算术运算比float算术运算更快吗 我尝试编