【发布时间】:2016-09-15 14:56:17
【问题描述】:
我正在编写一个函数,它必须在数值范围内找到给定数字的位置,范围是代码中的一个变量,现在假设范围是4,所以范围如下所示:
[ 0-3 ]
[ 4-7 ]
[ 8-11 ]
[ 12-15 ]
[ 16-19 ]
[ 20-23 ]
[ 24-27 ]
我想要实现的是以最快的方式找到给定数字所属的范围,因为此操作是在数百万个事件中执行的。
所以到目前为止我写的,它工作正常,如下:public String findRange(int range,int number2bFound)
{
int base = 0;
if (number2bFound == 0)
number2bFound = 1.0;
int higher = 0;
while (base <= number2bFound)
{
higher = base + (range - 1);
if ((base <= number2bFound) && (higher >= number2bFound))
return base + "-" + higher;
base += range;
}
return null;
}
所以正如我所说的,这是可行的,但我相信这可以更有效地实现,只使用number2bFonud 和range 的值并排除非常昂贵的循环。
【问题讨论】: