From e3164c4513bbdcff5dd8aa68fa9a68ec8bc59cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=B9=E5=9C=86?= <374072213@qq.com> Date: Thu, 19 Jan 2023 18:46:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BA=8C=E5=88=86=E6=9F=A5=E6=89=BE?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E5=8F=8C=E5=BC=95=E5=8F=B7=E5=86=99=E5=8F=8D?= =?UTF-8?q?=E4=BA=86=20(#287)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit md中不好识别,但在页面上展示是反着的 --- docs/chapter_searching/binary_search.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/chapter_searching/binary_search.md b/docs/chapter_searching/binary_search.md index da60b3b4..468570c0 100644 --- a/docs/chapter_searching/binary_search.md +++ b/docs/chapter_searching/binary_search.md @@ -494,5 +494,5 @@ $$ 但并不意味着所有情况下都应使用二分查找,这是因为: - **二分查找仅适用于有序数据**。如果输入数据是无序的,为了使用二分查找而专门执行数据排序,那么是得不偿失的,因为排序算法的时间复杂度一般为 $O(n \log n)$ ,比线性查找和二分查找都更差。再例如,对于频繁插入元素的场景,为了保持数组的有序性,需要将元素插入到特定位置,时间复杂度为 $O(n)$ ,也是非常昂贵的。 -- **二分查找仅适用于数组**。由于在二分查找中,访问索引是 ”非连续“ 的,因此链表或者基于链表实现的数据结构都无法使用。 +- **二分查找仅适用于数组**。由于在二分查找中,访问索引是 “非连续” 的,因此链表或者基于链表实现的数据结构都无法使用。 - **在小数据量下,线性查找的性能更好**。在线性查找中,每轮只需要 1 次判断操作;而在二分查找中,需要 1 次加法、1 次除法、1 ~ 3 次判断操作、1 次加法(减法),共 4 ~ 6 个单元操作;因此,在数据量 $n$ 较小时,线性查找反而比二分查找更快。