也许我认为这个错误,但是这里有一个问题:根据它们的值挑选JSON对象阵列
我有NSMutableArray全是JSON对象。每个对象都这个样子的,这里是他们的2例如:
{
player = "Lorenz";
speed = "12.12";
},
{
player = "Firmino";
speed = "15.35";
}
好了,所以这是好的,这是从网络服务器进动态信息,我得到的。现在我想要的是让我们假装有22个这样的条目,速度也不尽相同。
我想要一个计时器,从1.0秒开始并持续到60.0秒,每秒几次我希望它抓住所有速度刚刚超过的玩家。例如,如果定时器在12.0时关闭,然后在12.5时再次关闭,我希望它能够抓住速度在12.0到12.5之间的所有玩家名称,你会看到吗?
显而易见的简单方法是在每次定时器关闭时完全遍历数组,但是我希望计时器能够以每秒10次或更多次的速度完成,这样会很公平我认为浪费的算法。任何更好的想法?我可以尝试改变数据来自Web服务器的方式,但不认为这是必要的。
如果保留指数保持在你的排序列表,那么你就知道下一个项目时,下一个限制是通过其中找到的指数,所以没有二进制搜索是必需的。 –
谢谢,皮特。我稍微误解了这个问题。该方法假设元素和输入数字以可预测的方式递增,但是 - 如果不是 - 在最坏的情况下不会是O(n)(如果必须一直增加到最后假设你不知道前进的固定金额?)。我已经更新了答案,以纳入您的建议,但稍作修改。 –
如果你按照OP的例子抓住12到12.5之间的所有球员,他们只是从你的索引增加到不少于12的球员,直到你找到一个不低于12.5的球员;如果OP想要范围内的所有玩家而不是范围内的第一个和最后一个玩家,那么无论如何你都必须迭代它们。 –