给定一个有序数组和一个目标值,以下哪种算法可以在最坏情况下提供O(log n)的时间复杂度来查找目标值是否存在?
答案解析
此题考察对各种查找算法时间复杂度的理解。
A选项错误,因为线性查找的时间复杂度为O(n)。
B选项正确,因为二分查找在有序数组中查找目标值的时间复杂度为O(log n)。
C选项错误,插值查找的时间复杂度在最好情况下为O(log log n),但在最坏情况下可能退化到O(n)。
D选项错误,斐波那契查找的时间复杂度在最好情况下为O(log n),但在最坏情况下可能接近O(2n)。
正确答案是B,因为二分查找在有序数组中查找目标值时,无论最好还是最坏情况,时间复杂度都为O(log n)。
正确答案:B