在 Java 中,**二分搜索(Binary Search)**的时间复杂度是:
二分搜索要求数据必须是有序的(通常是升序数组)。
其核心思想是:
每一轮搜索都将问题规模减半:
n → n/2 → n/4 → ... → 1
因此比较次数为:
log₂(n)
int index = Arrays.binarySearch(arr, target);
int index = Collections.binarySearch(list, target);
RandomAccess,如 ArrayList)LinkedList,会先遍历,效率差| 搜索方式 | 时间复杂度 |
|---|---|
| 顺序搜索 | O(n) |
| 二分搜索 | O(log n) |
| 哈希表查找 | O(1) |
如果你愿意,我也可以帮你写 递归 / 非递归二分搜索代码,或解释 为什么必须是 sorted 的。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。