Skip to content

Commit b76f6ac

Browse files
committed
auto commit
1 parent f84b140 commit b76f6ac

File tree

4 files changed

+22
-40
lines changed

4 files changed

+22
-40
lines changed

docs/notes/Leetcode 题解 - 数组与矩阵.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ k = 8,
138138
return 13.
139139
```
140140

141-
��题参考:[Share my thoughts and Clean Java Code
142-
143-
[Leetcode](https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/discuss/85173) / [力扣](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/discuss/85173)
141+
解题参考:[Share my thoughts and Clean Java Code](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/discuss/85173)
144142

145143
二分查找解法:
146144

@@ -233,15 +231,6 @@ private void swap(int[] nums, int i, int j) {
233231
}
234232
```
235233

236-
类似题目:
237-
238-
[448\. Find All Numbers Disappeared in an Array (Easy)
239-
240-
[Leetcode](https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/description/),寻找所有丢失的元�) / [力扣](https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/description/),寻找所有丢失的元�)
241-
[442\. Find All Duplicates in an Array (Medium)
242-
243-
[Leetcode](https://leetcode.com/problems/find-all-duplicates-in-an-array/description/),寻找所有重复的元素�) / [力扣](https://leetcode-cn.com/problems/find-all-duplicates-in-an-array/description/),寻找所有重复的元素�)
244-
245234
# 7. 找出数组中重复的数,数组值在 [1, n] 之间
246235

247236
287\. Find the Duplicate Number (Medium)

docs/notes/MySQL.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,25 @@ B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具
4848

4949
进行查找操作时,首先在根节点进行二分查找,找到一个 key 所在的指针,然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出 key 所对应的 data。
5050

51-
插入删除操作会破坏平衡树的平衡性,因此在插入删除操作之后,需要对树进行一个分裂、合并、旋转等操作来维护平衡性。
51+
插入删除操作会破坏平衡树的平衡性,因此在进行插入删除操作之后,需要对树进行分裂、合并、旋转等操作来维护平衡性。
5252

5353
### 3. 与红黑树的比较
5454

55-
红黑树等平衡树也可以用来实现索引,但是文件系统及数据库系统普遍采用 B+ Tree 作为索引结构,主要有以下两个原因:
55+
红黑树等平衡树也可以用来实现索引,但是文件系统及数据库系统普遍采用 B+ Tree 作为索引结构,这是因为使用 B+ 树访问磁盘数据有更高的性能。
5656

57-
(一)更少的查找次数
57+
(一)B+ 树有更低的树高
5858

59-
平衡树查找操作的时间复杂度和树高 h 相关,O(h)=O(log<sub>d</sub>N),其中 d 为每个节点的出度。
59+
平衡树的树高 O(h)=O(log<sub>d</sub>N),其中 d 为每个节点的出度。红黑树的出度为 2,而 B+ Tree 的出度一般都非常大,所以红黑树的树高 h 很明显比 B+ Tree 大非常多
6060

61-
红黑树的出度为 2,而 B+ Tree 的出度一般都非常大,所以红黑树的树高 h 很明显比 B+ Tree 大非常多,查找的次数也就更多。
61+
(二)磁盘访问原理
6262

63-
(二)利用磁盘预读特性
63+
操作系统一般将内存和磁盘分割成固定大小的块,每一块称为一页,内存与磁盘以页为单位交换数据。数据库系统将索引的一个节点的大小设置为页的大小,使得一次 I/O 就能完全载入一个节点。
6464

65-
为了减少磁盘 I/O 操作,磁盘往往不是严格按需读取,而是每次都会预读。预读过程中,磁盘进行顺序读取,顺序读取不需要进行磁盘寻道,并且只需要很短的磁盘旋转时间,速度会非常快
65+
如果数据不在同一个磁盘块上,那么通常需要移动制动手臂进行寻道,而制动手臂因为其物理结构导致了移动效率低下,从而增加磁盘数据读取时间。B+ 树相对于红黑树有更低的树高,进行寻道的次数与树高成正比,在同一个磁盘块上进行访问只需要很短的磁盘旋转时间,所以 B+ 树更适合磁盘数据的读取
6666

67-
操作系统一般将内存和磁盘分割成固定大小的块,每一块称为一页,内存与磁盘以页为单位交换数据。数据库系统将索引的一个节点的大小设置为页的大小,使得一次 I/O 就能完全载入一个节点。并且可以利用预读特性,相邻的节点也能够被预先载入。
67+
(三)磁盘预读特性
68+
69+
为了减少磁盘 I/O 操作,磁盘往往不是严格按需读取,而是每次都会预读。预读过程中,磁盘进行顺序读取,顺序读取不需要进行磁盘寻道,并且只需要很短的磁盘旋转时间,速度会非常快。并且可以利用预读特性,相邻的节点也能够被预先载入。
6870

6971
## MySQL 索引
7072

notes/Leetcode 题解 - 数组与矩阵.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,7 @@ k = 8,
138138
return 13.
139139
```
140140

141-
��题参考:[Share my thoughts and Clean Java Code
142-
143-
[Leetcode](https://leetcode.com/problems/kth-smallest-element-in-a-sorted-matrix/discuss/85173) / [力扣](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/discuss/85173)
141+
解题参考:[Share my thoughts and Clean Java Code](https://leetcode-cn.com/problems/kth-smallest-element-in-a-sorted-matrix/discuss/85173)
144142

145143
二分查找解法:
146144

@@ -233,15 +231,6 @@ private void swap(int[] nums, int i, int j) {
233231
}
234232
```
235233

236-
类似题目:
237-
238-
[448\. Find All Numbers Disappeared in an Array (Easy)
239-
240-
[Leetcode](https://leetcode.com/problems/find-all-numbers-disappeared-in-an-array/description/),寻找所有丢失的元�) / [力扣](https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/description/),寻找所有丢失的元�)
241-
[442\. Find All Duplicates in an Array (Medium)
242-
243-
[Leetcode](https://leetcode.com/problems/find-all-duplicates-in-an-array/description/),寻找所有重复的元素�) / [力扣](https://leetcode-cn.com/problems/find-all-duplicates-in-an-array/description/),寻找所有重复的元素�)
244-
245234
# 7. 找出数组中重复的数,数组值在 [1, n] 之间
246235

247236
287\. Find the Duplicate Number (Medium)

notes/MySQL.md

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,25 @@ B+ Tree 是基于 B Tree 和叶子节点顺序访问指针进行实现,它具
4848

4949
进行查找操作时,首先在根节点进行二分查找,找到一个 key 所在的指针,然后递归地在指针所指向的节点进行查找。直到查找到叶子节点,然后在叶子节点上进行二分查找,找出 key 所对应的 data。
5050

51-
插入删除操作会破坏平衡树的平衡性,因此在插入删除操作之后,需要对树进行一个分裂、合并、旋转等操作来维护平衡性。
51+
插入删除操作会破坏平衡树的平衡性,因此在进行插入删除操作之后,需要对树进行分裂、合并、旋转等操作来维护平衡性。
5252

5353
### 3. 与红黑树的比较
5454

55-
红黑树等平衡树也可以用来实现索引,但是文件系统及数据库系统普遍采用 B+ Tree 作为索引结构,主要有以下两个原因:
55+
红黑树等平衡树也可以用来实现索引,但是文件系统及数据库系统普遍采用 B+ Tree 作为索引结构,这是因为使用 B+ 树访问磁盘数据有更高的性能。
5656

57-
(一)更少的查找次数
57+
(一)B+ 树有更低的树高
5858

59-
平衡树查找操作的时间复杂度和树高 h 相关,O(h)=O(log<sub>d</sub>N),其中 d 为每个节点的出度。
59+
平衡树的树高 O(h)=O(log<sub>d</sub>N),其中 d 为每个节点的出度。红黑树的出度为 2,而 B+ Tree 的出度一般都非常大,所以红黑树的树高 h 很明显比 B+ Tree 大非常多
6060

61-
红黑树的出度为 2,而 B+ Tree 的出度一般都非常大,所以红黑树的树高 h 很明显比 B+ Tree 大非常多,查找的次数也就更多。
61+
(二)磁盘访问原理
6262

63-
(二)利用磁盘预读特性
63+
操作系统一般将内存和磁盘分割成固定大小的块,每一块称为一页,内存与磁盘以页为单位交换数据。数据库系统将索引的一个节点的大小设置为页的大小,使得一次 I/O 就能完全载入一个节点。
6464

65-
为了减少磁盘 I/O 操作,磁盘往往不是严格按需读取,而是每次都会预读。预读过程中,磁盘进行顺序读取,顺序读取不需要进行磁盘寻道,并且只需要很短的磁盘旋转时间,速度会非常快
65+
如果数据不在同一个磁盘块上,那么通常需要移动制动手臂进行寻道,而制动手臂因为其物理结构导致了移动效率低下,从而增加磁盘数据读取时间。B+ 树相对于红黑树有更低的树高,进行寻道的次数与树高成正比,在同一个磁盘块上进行访问只需要很短的磁盘旋转时间,所以 B+ 树更适合磁盘数据的读取
6666

67-
操作系统一般将内存和磁盘分割成固定大小的块,每一块称为一页,内存与磁盘以页为单位交换数据。数据库系统将索引的一个节点的大小设置为页的大小,使得一次 I/O 就能完全载入一个节点。并且可以利用预读特性,相邻的节点也能够被预先载入。
67+
(三)磁盘预读特性
68+
69+
为了减少磁盘 I/O 操作,磁盘往往不是严格按需读取,而是每次都会预读。预读过程中,磁盘进行顺序读取,顺序读取不需要进行磁盘寻道,并且只需要很短的磁盘旋转时间,速度会非常快。并且可以利用预读特性,相邻的节点也能够被预先载入。
6870

6971
## MySQL 索引
7072

0 commit comments

Comments
 (0)