Polish the chapter of searching and sorting.

This commit is contained in:
krahets
2023-04-10 03:11:49 +08:00
parent 0bec52d7cc
commit 9a74d9a9d1
24 changed files with 199 additions and 217 deletions
+8 -8
View File
@@ -1,10 +1,10 @@
# 线性查找
「线性查找 Linear Search」是一种最基础的查找方法,其从数据结构的一端开始,依次访问每个元素,直另一端后停止。
「线性查找 Linear Search」是一种简单的查找方法,其从数据结构的一端开始,逐个访问每个元素,直另一端止。
## 算法实现
线性查找实质上就是遍历数据结构 + 判断条件。比如,我们想要在数组 `nums` 中查找目标元素 `target` 的对应索引,那么可以在数组中进行线性查找。
如,我们想要在数组 `nums` 中查找目标元素 `target` 的对应索引,可以采用线性查找方法
![在数组中线性查找元素](linear_search.assets/linear_search.png)
@@ -68,7 +68,7 @@
[class]{}-[func]{linearSearchArray}
```
再比如,我们想要在给定一个目标节点值 `target` 返回节点对象,也可以在链表中进行线性查找。
另一个例子,若需要在链表中查找给定目标节点值 `target` 返回节点对象,同样可以使用线性查找。
=== "Java"
@@ -132,12 +132,12 @@
## 复杂度分析
**时间复杂度 $O(n)$** :其中 $n$ 数组或链表长度。
**时间复杂度 $O(n)$** :其中 $n$ 代表数组或链表长度。
**空间复杂度 $O(1)$** :无需使用额外空间。
**空间复杂度 $O(1)$** :无需借助额外的存储空间。
## 优点与缺点
## 优点与局限性
**线性查找的通用性极佳**。由于线性查找是依次访问元素的,没有跳跃访问元素,因此数组链表皆适用
**线性查找具有极佳的通用性**。由于线性查找是逐个访问元素的,没有跳跃访问,因此适用于数组链表的查找
**线性查找的时间复杂度**数据量 $n$ 大时,查找效率低。
**线性查找的时间复杂度**数据量 $n$ 大时,线性查找效率低。