优化索引数组搜索大于号

时间:2009-12-11 22:05:33

标签: algorithm search

我有一系列已排序的数字:

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

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

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

愚蠢的解决方案

我可以通过线性搜索来完成此操作,但希望进行优化。

无效解决方案

二进制搜索算法示例找到完全数字的索引..

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

3 个答案:

答案 0 :(得分:2)

二进制搜索算法查找tlist[t] <= Tlist[t+1] > T(或t+1长于列表的长度)

答案 1 :(得分:0)

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

答案 2 :(得分:0)

二进制搜索将适用于此。

通常,实现将返回一个负数,以告诉您插入点。例如,在Java中,只有-1-n并且您有自己的位置。