听起来像是一个技巧问题,因为没有上下文。看起来面试官想要涵盖二进制搜索好的情况和不好的情况。
因此,当您对元素列表进行排序并搜索单个元素时,二分搜索非常有用,在这种情况下,它的成本为O(logn).
现在,如果我们没有排序的数组,排序的成本是O(n logn),然后您可以应用第一种情况。在这种情况下,最好将值放在 set 或 map 中然后搜索(执行时间将O(n)用于插入,O(1)用于搜索)。
这两种情况都依赖于单一搜索。二分搜索不是用于在单次执行中搜索 n 个元素(或任何数量的元素取决于n,例如n/2元素,n/4甚至logn元素 - 对于固定数量的它可以)。对于这种情况,有更好的方法(集合和映射)。
| 归档时间: |
|
| 查看次数: |
6384 次 |
| 最近记录: |