代码之家  ›  专栏  ›  技术社区  ›  jedierikb grijalvaromero

优化的索引数组搜索大于

  •  1
  • jedierikb grijalvaromero  · 技术社区  · 15 年前

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

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

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

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

    哑解

    我可以用线性搜索来实现这一点,但是我想进行优化。

    不起作用的解决方案

    二进制搜索算法示例查找 准确的 号码…

    有没有建议的技术来解决这种搜索问题?谢谢!

    3 回复  |  直到 15 年前
        1
  •  2
  •   mob    15 年前

    要查找的二进制搜索算法 t 这样 list[t] <= T list[t+1] > T (或 t+1 大于列表的长度)

        2
  •  0
  •   PeterAllenWebb    15 年前

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

        3
  •  0
  •   akuhn    15 年前

    二进制搜索就可以了。

    通常,一个实现会返回一个负数来告诉您关于插入点的信息。例如,在Java中 -1-n 你有你的位置。