我正在处理家庭作业问题,但在创建复杂度为 O(n*logn) 的解决方案时遇到了一些困难。我需要编写一个函数,它接受一个预先排序的数组和一个要搜索的值。然后我需要找出数组中的任何两个元素是否总和等于该值。
我需要为此创建复杂度为 O(n) 和复杂度为 O(n*logn) 的算法。
O(n) 很容易创建;但是,如果不添加一些实际上无助于解决问题的无偿代码,我在创建 O(n*logn) 算法时遇到困难。如果有人可以就我可能遗漏的内容给我一些指示,我们将不胜感激。
最佳答案
从第一个元素开始,按顺序进行。在此期间,使用二进制搜索搜索第二个元素。
关于algorithm - 查找预排序数组中的两个元素总和是否等于某个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2204487/