【问题标题】:optimized indexed array search for greater-than number优化索引数组搜索大于数
【发布时间】:2010-12-25 20:35:49
【问题描述】:

我有一个排序好的数字数组:

pts = [ 0, 4, 25, 51, 72, 100 ]

给定值T,我需要找到数组中第一个大于T的数字的索引。

if T = 2, then the correct index is 1 for value 4

愚蠢的解决方案

我可以通过线性搜索来做到这一点,但想要优化。

没有解决办法

二分搜索算法示例找到精确数的索引..

是否有解决此类搜索问题的建议技术?谢谢!

【问题讨论】:

标签: algorithm search


【解决方案1】:

二分查找算法来查找t 使得list[t] <= Tlist[t+1] > T(或t+1 比列表的长度长)

【讨论】:

    【解决方案2】:

    二分搜索算法通常会找到精确匹配,但该算法很简单,您应该很容易修改它以找到大于给定数字的第一个数字。您是否正在寻找某种特定语言的解决方案?

    【讨论】:

      【解决方案3】:

      二分搜索将适用。

      通常,实现会返回一个负数来告诉您插入点。例如,在 Java 中,只需 -1-n,您就有了自己的位置。

      【讨论】:

        猜你喜欢
        • 2012-08-15
        • 2022-08-11
        • 2022-11-29
        • 2011-05-14
        • 2019-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多