【问题标题】:Fastest way to find closest double/float in a sequential array在顺序数组中找到最近的双精度/浮点数的最快方法
【发布时间】:2014-04-19 16:51:12
【问题描述】:

假设我们有一个像这样的值数组:

[0] = 1.2
[1] = 2.4
[2] = 2.7
[3] = 3.3
etc.

我们想要找到最接近的匹配,使得 f(2.5) = 1。换句话说,搜索“2.5”将产生等于 2.4 的索引,因为这是最接近的匹配

对于小型数组 - 这没什么大不了的,只需从第一个索引循环并比较下一个与上一个的差异。但是对于大型数组,这是一种浪费——因为如果目标值出现在附近,那么从末尾开始会更好。

【问题讨论】:

  • 这是否与特定语言有关?如果是这样,请用它标记问题。
  • 任何真正支持数组和浮点数的语言:)
  • 好的。 @OscarBralo 的一般回答就足够了。
  • 坦率地说,事实证明我不需要它,因为线性搜索对我的情况来说已经足够快了,但考虑到此时的支持和缺乏其他响应,我将其标记为正确 :)

标签: arrays performance search


【解决方案1】:

排序了吗?如果它已排序,您可以使用 Binary Search 来找到它!

在大数组中的表现会很棒! O(logN)

这里有一些信息:http://en.wikipedia.org/wiki/Binary_search_algorithm

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-09
    • 2019-07-07
    • 2014-12-09
    • 1970-01-01
    • 2013-03-04
    • 2019-07-13
    • 1970-01-01
    • 2015-07-12
    相关资源
    最近更新 更多