Sorting 排序无限二进制数组中第一次出现1
对于有限大小的数组,我们可以使用二进制搜索在O(log(n))时间内得到解Sorting 排序无限二进制数组中第一次出现1,sorting,search,Sorting,Search,对于有限大小的数组,我们可以使用二进制搜索在O(log(n))时间内得到解 如果我们有一个无限数组,索引的查找时间是恒定的,那么如果我们知道数组已排序,我们能以多快的速度找到第一个出现的1?上面的问题是什么?您对无限数组的操作是什么?O(1)查找?也许最好的办法是对一些n进行迭代,直到索引2^n中的1第一次出现,然后进行二进制搜索。然后保证在O(log(n))中找到它,其中n是第一个索引的位置 编辑:Ps。如果数组确实是无限的且只包含零,则不保证终止此操作。考虑到无限数组在有限环境中不作为PC存
如果我们有一个无限数组,索引的查找时间是恒定的,那么如果我们知道数组已排序,我们能以多快的速度找到第一个出现的1?上面的问题是什么?您对无限数组的操作是什么?O(1)查找?也许最好的办法是对一些n进行迭代,直到索引2^n中的1第一次出现,然后进行二进制搜索。然后保证在O(log(n))中找到它,其中n是第一个索引的位置
编辑:Ps。如果数组确实是无限的且只包含零,则不保证终止此操作。考虑到无限数组在有限环境中不作为PC存在,我会将其重新标记为作业。到目前为止,您尝试了什么?向我们展示您在这方面的努力,以便我们能够适当地解决。这是一个面试问题。请不要认为我错了谢谢巴特,注意到了。@ranganath111作业问题,面试问题,没关系。试着自己解决,告诉我们你被困在哪里了。在这个网站上,我们通常不会为你做你的工作。我们将帮助您解决您面临的实际问题。在它当前的公式中,这不是一个很好的问题。不,首先你做指数,基本上你尝试指数1,2,4,8,16,32等。然后当你找到一个,例如在4096=2^12,你在2^11=2048和2^12=4096之间进行二元搜索。换句话说,你尝试建立第一个有用的中点(例如,where值(index)>使用指数增长的索引搜索(U值)。