让 s 是一个由 n 个整数组成的排序数组。让 t(n) 表示最有效的算法确定在 s 中是否有两个元素的总和小于 1000 所花费的时间。下面哪个描述是正确的?
a) t (n) 是 O(1) b) n < t (n) < n c) n log 2 n < t (n) < d) t (n) = [/Tex]{n \choose 2} [/Tex]
(一)
(乙)乙
(C) c
(D) d答案:(一)
说明:让数组按升序排序,如果前两个元素之和小于1000,则有两个元素之和小于1000,否则没有。对于按降序排序的数组,我们需要检查最后两个元素。对于数组数据结构,两种情况下的操作次数都是固定的,不依赖于 n,复杂度为 O(1)
这个问题的测验