在连续的赔率数组中查找数字的平方

时间:2017-05-09 18:37:39

标签: arrays optimization

我有一个从3开始的连续奇数阵。所以x = {3,4,5,6,7,8,9,10,11,12,13 ......}。 我想知道是否有一种快速的方法可以找到数字n的平方所在的索引。因此,如果n为5,我正在寻找阵列中25的位置。现在我有((n)*(n - 1))我添加到当前的i索引。有什么更快的吗?

1 个答案:

答案 0 :(得分:0)

你的数组由连续的数字组成并且它被排序,因此它形成一个数学算术级数,差异为1,第一个元素为3,所以在索引i我们有{{1}所以a[i]=i+3

因此要找到i=a[i]-3nnsqr的平方的索引,nsqr索引只是n*n,而nsqr-3O(1)算法。

如果我们有连续排序的数字(以a0开头并且d不同),为了使其一般化,找到n的平方在哪里(nsqr-a0)/d