【发布时间】:2019-11-03 16:51:25
【问题描述】:
给定一个排序整数数组,我想找到最接近给定数字的值。数组可能包含重复值和负数。 一个例子 : 输入 :arr[] = {-5, 2, 5, 6, 7, 8, 8, 9}; 目标数 = 4 输出:5
最快的算法是什么?二进制搜索? STL 查找算法?
感谢您的帮助。
【问题讨论】:
-
我会使用二分搜索 x) 我认为没有更快的方法
-
二分查找-std::lower_bound,检查返回的迭代器是否不是结束迭代器,如果存在则检查之前的迭代器。
-
二分查找只有在数组排序后才能工作。否则,别无选择,只能穷尽搜索。
-
提到数组是有序的